繁体   English   中英

对于每个/查询未给出正确的值

[英]For each / query doesn't give the right value

我的数据库中有一个表。 我想从leave表中获取ltotal值,然后计算所有ltotal 这是我使用的查询和代码:

$annual_query = pg_query("select ltotal from leave where lapplicant='adam' and ltype=2");

            $annual_result = pg_fetch_array($annual_query);

            if (pg_num_rows($annual_query) > 0) {

                foreach ($annual_result as $data) {

                    $total_annual = $total_annual + $data;

                }

                print($total_annual);
            }

表离开中有3条记录,其中lapplicant='adam'ltype=2

每个ltotal为1。

当我尝试运行print($total_annual) ,结果为2(必须为3)。

然后我尝试print_r($annual_result['ltotal'] ),结果仅为1(必须为1,1,1)。

谁能帮我? 谢谢。

泰米尔人指出了眼前的问题。 但是-为什么不只在SQL中这样做呢?

select sum(ltotal)
from leave 
where lapplicant='adam' and ltype=2

pg_fetch_array()仅返回带有数字键和关联键的行(遍历时,相同值两次)。 您应该使用pg_fetch_all()并遍历或在连续的行上使用while循环。

$total_annual = 0;
$annual_query = pg_query("select ltotal from leave where lapplicant='adam' and ltype=2");
while ($row = pg_fetch_array($annual_query)) {
    $total_annual = $total_annual + $row['ltotal'];
}
print($total_annual);

要么

$total_annual = 0;
$annual_query = pg_query("select ltotal from leave where lapplicant='adam' and ltype=2");
$annual_result = pg_fetch_all($annual_query);
foreach ($annual_result as $row) {
    $total_annual = $total_annual + $row['ltotal'];
}
print($total_annual);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM