Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何获取特定行的总和_Php_Mysql - Fatal编程技术网

Php 如何获取特定行的总和

Php 如何获取特定行的总和,php,mysql,Php,Mysql,我正在开发一个血库管理系统。现在我想显示每个用户献血的次数,我的意思是我想得到每个用户行的总和。例如,如果捐赠者(其护照/IC为AF3444547)在数据库中有3行,那么我需要显示数据库中的总行数。如果下次我放入另一条AF3444547记录,那么我需要得到4的总和。下图显示了我的数据库。提前谢谢 这是我的代码 <?php $passport_IC='passport_IC'; $q="SELECT pa

我正在开发一个血库管理系统。现在我想显示每个用户献血的次数,我的意思是我想得到每个用户行的总和。例如,如果捐赠者(其护照/IC为AF3444547)在数据库中有3行,那么我需要显示数据库中的总行数。如果下次我放入另一条AF3444547记录,那么我需要得到4的总和。下图显示了我的数据库。提前谢谢

这是我的代码

 <?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
我认为您需要使用not
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
,因此可以简单地使用
回声计数($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" );