这是我的代码
<?php
$passport_IC='passport_IC';
$q="SELECT passport_IC, count(*) FROM donate GROUP BY passport_IC";
$query=$db->prepare($q);
$query->execute(array($passport_IC));
$people = $query->fetchAll(PDO::FETCH_OBJ);
?>
<table class="table table-bordered">
<tr>
<th><center> passport </center></th>
<th><center> quantity</center></th>
</tr>
<?php foreach($people as $donors): ?>
<tr>
<td><center><b><font color="white"><?= $donors->passport_IC; ?></font></b></center></td>
</tr>
<?php endforeach; ?>
答案 0 :(得分:1)
不是sum()
所需要的...
count(*)
是答案。
COUNT(*)函数返回满足以下条件的行数: SELECT语句的WHERE子句。
https://www.ibm.com/support/knowledgecenter/en/SSGU8G_12.1.0/com.ibm.sqls.doc/ids_sqs_1580.htm
$q=$db->query("SELECT COUNT(*) from donate WHERE passport_ic=:passport_ic" );
答案 1 :(得分:0)
请使用:
SELECT COUNT(*) as total from donate WHERE passport_ic=:passport_ic
答案 2 :(得分:0)
我认为您需要使用rowCount
而不是rowcount
$row=$q->rowcount();
应该是$del->rowCount()
您还可以通过使用MYSQL查询来实现这一点,在此处使用count(*)
来获取总行数:
$q=$db->query("SELECT COUNT(*) as total from donate WHERE passport_ic=:passport_ic" );
第三,您也可以使用PHP count()
方法,该方法会将您的数组计数返回为echo count($q);
编辑:
更新问题后,该数组$people
中包含所有行,因此可以简单地使用echo count($people);
,这将返回总计的行数。