在PHP中添加MYSQL查询获取的总数量时出错


Error when adding total quantity fetched by MYSQL Query in PHP

我想添加裤子的数量来显示数据库中的总裤子,但它只显示什么。这是编码…是我的逻辑错了吗?

<?php
if(is_resource($r) and mysql_num_rows($r)>0)
{
       while ($r = mysql_fetch_array($q))
       {
            $p = mysql_query("SELECT qtt FROM stock_request WHERE branch_id = 'bachok' AND type = 'Pants'") or die ("Error: " . mysql_error());
            $tp = $tp + $p;
        }
        echo $tp;
                          }
?>

error Logic as mysql_query()成功返回资源,错误返回FALSE。它不返回值(在您的例子中是数量)。

为了从数组中获取值,使用mysql_fetch_array -以关联数组、数字数组或两者的形式获取结果行

在while循环之前初始化$tp=0

$tp = $tp + $p;替换为

$tp=$tp+$r[0]

下面是完整的代码:

<?php
       $p = mysql_query("SELECT qtt FROM stock_request WHERE branch_id = 'bachok' AND type = 'Pants'") ;
       $tp=0;
       while ($r = mysql_fetch_array($p,MYSQL_NUM))
       {
             $tp = $tp + $r[0];
       }
        echo $tp;
?>

更新:$r[0]是什么意思?

mysql_fetch_array有三种用法:

  • mysql_fetch_array() with MYSQL_NUM

  • mysql_fetch_array() with MYSQL_ASSOC

  • mysql_fetch_array() with MYSQL_BOTH

我使用了$r=0 ie。mysql_fetch_array with MYSQL_NUM.

在这种情况下,您只获得数字索引。例如:

$result = mysql_query("SELECT a,b,c,d,e FROM mytable");
$row = mysql_fetch_array($result, MYSQL_NUM)) 

$row[0]表示

的值

$row[1]表示b的值

$row[2]表示c

的值

............

$row[4]= e的平均值

因此在您的查询中,$r[0]指的是qtt

的值

你的逻辑是错误的:

$p = mysql_query("SELECT qtt FROM stock_request WHERE branch_id = 'bachok' AND type = 'Pants'") or die ("Error: " . mysql_error());
应:

$result = mysql_query("SELECT qtt FROM stock_request WHERE branch_id = 'bachok' AND type = 'Pants'") or die ("Error: " . mysql_error());
$row = mysql_fetch_assoc($result);
$p = $row['qtt'];