错误的逻辑,因为 mysql_query()成功返回资源,错误返回 FALSE。它不返回值(在您的情况下为数量)。
要获取数组中的值,请使用mysql_fetch_array — 获取结果行作为关联数组、数值数组或两者兼而有之。
$tp=0
在while循环之前初始化
替换$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() 与 MYSQL_NUM
mysql_fetch_array() 与 MYSQL_ASSOC
mysql_fetch_array() 与 MYSQL_BOTH
我曾使用 $r=0 即。mysql_fetch_array 和 MYSQL_NUM。
在这种情况下,您只能获得数字索引。例如 :
$result = mysql_query("SELECT a,b,c,d,e FROM mytable");
$row = mysql_fetch_array($result, MYSQL_NUM))
$row [0] 表示 a 的值
$row [ 1] 表示 b 的值
$row [ 2] 表示 c 的值
…………
$row[4]=e 的平均值。
因此,在您的查询中, $r[0] 指的是qtt的值