[mysql]为每个查询不给正确的值

发布时间: 2017/1/9 22:13:48
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有我的数据库中的表。我想要 ltotal 值从 leave 表,然后指望所有的 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)。

谁能帮我吗?谢谢。

解决方法 1:

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);
官方微信
官方QQ群
31647020