表PHP中未定义的偏移量

问题描述 投票:0回答:1

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

注意:在第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>";}
php mysql html-table undefined offset
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.