表PHP中未定义的偏移量

时间:2013-10-05 00:05:12

标签: php mysql html-table undefined offset

有人可以解决我的问题吗? 我收到了这个错误:

  

注意:在第65行的C:\ Program Files(x86)\ xampp \ htdocs \ dede \ transaksi.php中使用未定义的常量数量 - 假设'qty'
  注意:未定义的偏移量:第65行的C:\ Program Files(x86)\ xampp \ htdocs \ dede \ transaksi.php中的3

在这个脚本上,我想在成本和数量之间相乘,任何人都知道吗?

$select=mysql_query("Select nota.id_item,nota.qty,item.nama_item,item.cost_item FROM nota,item WHERE nota.id_item = item.id_item");
       while($data=mysql_fetch_array($select)){
       $sub=$_POST[$data[qty]] * $_POST[$data[cost_item]];
        echo"<tr>";
          echo"<td height=20 >$data[id_item]</td>";
          echo"<td height=20 >$data[nama_item]</td>";
          echo"<td height=20 >$data[cost_item]</td>";
          echo"<td height=20 >$data[qty]</td>";
          echo"<td height=20 >$data[qty]*$data[cost_item]</td>";
          echo"<td><a href=deleten.php?id=$data[id_item]>X</a></td>";
         echo"</tr>";}

1 个答案:

答案 0 :(得分:1)

让我们打破这个......

$select = mysql_query("Select nota.id_item,nota.qty,item.nama_item,item.cost_item FROM nota,item WHERE nota.id_item = item.id_item");
while($data=mysql_fetch_array($select)) {

此时,您的$data变量应该包含8个元素。由于您使用了mysql_fetch_array(),因此您将拥有数字和关联键。也就是说,您的密钥为:0, 1, 2, 3, id_item, qty, nama_item, cost_item,您可以像这样引用它们:$data[1],或者像这样:$data['qty'](因为它们按原始查询的顺序编入索引,这两个例子的值应该是相同的。)

现在,我并不完全知道您使用$_POST的原因...如果您希望将成本乘以从数据库获得的值的数量,您只需执行以下操作:

$sub = $data['qty'] * $data['cost_item'];

顺便说一下,你要面对的另一个问题是PHP不会对数组成员进行字符串替换......至少不是你在这里的方式:

echo"<td height=20 >$data[qty]</td>";

鉴于您将$data[qty]修复为$data['qty'],您仍然需要用花括号括起整个内容才能打印。否则,您将收到解析错误:

echo"<td height=20 >$data['qty']</td>";    // Bad
echo"<td height=20 >{$data['qty']}</td>";  // Good