0

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

<?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;
                          }
?>
4

2 回答 2

1

你的逻辑是错误的:

$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'];
于 2013-04-28T16:31:11.703 回答
1

错误的逻辑,因为 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的值

于 2013-04-28T16:32:43.383 回答