0

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

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

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

$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>";}
4

1 回答 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
于 2013-10-05T00:21:06.780 回答