Php 如何获取特定行的总和
我正在开发一个血库管理系统。现在我想显示每个用户献血的次数,我的意思是我想得到每个用户行的总和。例如,如果捐赠者(其护照/IC为AF3444547)在数据库中有3行,那么我需要显示数据库中的总行数。如果下次我放入另一条AF3444547记录,那么我需要得到4的总和。下图显示了我的数据库。提前谢谢 这是我的代码Php 如何获取特定行的总和,php,mysql,Php,Mysql,我正在开发一个血库管理系统。现在我想显示每个用户献血的次数,我的意思是我想得到每个用户行的总和。例如,如果捐赠者(其护照/IC为AF3444547)在数据库中有3行,那么我需要显示数据库中的总行数。如果下次我放入另一条AF3444547记录,那么我需要得到4的总和。下图显示了我的数据库。提前谢谢 这是我的代码 <?php $passport_IC='passport_IC'; $q="SELECT pa
<?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; ?>
护照
量
不是你需要的sum()
count(*)
就是答案
COUNT(*)函数返回满足条件的行数
SELECT语句的WHERE子句
请使用:
SELECT COUNT(*) as total from donate WHERE passport_ic=:passport_ic
我认为您需要使用notrowcount
$row=$q->rowcount()代码>应该是$del->rowCount()
您也可以通过使用MYSQL查询来实现这一点,在这里使用count(*)
来获取总行数:
$q=$db->query("SELECT COUNT(*) as total from donate WHERE passport_ic=:passport_ic" );
第三,您还可以使用PHPcount()
方法,它将返回数组的计数作为echo count($q)代码>
编辑:
更新问题后,此数组中有所有行$people
,因此可以简单地使用回声计数($people)代码>这将返回您的总行数。使用group by with count。选择count(*)作为“捐赠”中的行,其中passport\u ic=:passport\u ic
您可以给我这样的示例吗?我最好明白,我应该如何编写查询@techgyyany你的代码是有意义的。它不是有效的(使用计数更有效率),但是如果您希望显示每个事件的报告,它是有效的。。。使用count您只需获得您绑定的行数passport\u ic
?我使用了这个,但没有显示任何内容..甚至没有error@sayemali:在哪里绑定passport\u ic
?@sayemali:共享var\u dump($row)的结果
@sayemali:或者尝试使用回声计数($q)代码>共享结果我的代码正在运行,但我如何按count@devroupVoted打印行数,但请详细说明您的答案。OP在计算返回行和获取聚合函数的结果之间似乎有点混淆。
$q=$db->query("SELECT COUNT(*) as total from donate WHERE passport_ic=:passport_ic" );