我想添加裤子的数量来显示数据库中的总裤子,但它只显示什么。这是编码…是我的逻辑错了吗?
<?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'];