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=0while ループの前に初期化する

$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は、次の 3 つの方法で使用できます。

  • MYSQL_NUM を指定した mysql_fetch_array()

  • MYSQL_ASSOC を使用した mysql_fetch_array()

  • MYSQL_BOTH を使用した mysql_fetch_array()

私は $r=0 を使用していました。MYSQL_NUM を含む mysql_fetch_array。

この場合、数値インデックスのみを取得します。例えば ​​:

$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 に答える