2016-12-16 144 views
0

我正在尝试使用while循环和另一个while循环中的库存计数在行中发布产品的库存记录函数,但是当我运行代码时它会在第二个返回错误虽然循环,我不知道我错了哪一部分。在这里需要一些帮助!当在另一个while循环中使用while循环时出错

下面的代码:

$conn = mysql_connect('localhost', 'root', ''); 
     mysql_select_db('EmployeeDB'); 
     $rproduct = "SELECT Product FROM `tbl_user` GROUP BY Product"; 
     $result = mysql_query($rproduct); 

     while($row1 = mysql_fetch_array($result)){ 
     $prod = $row1['Product']; 
      echo "<tr><th>$prod</th>"; 
      $rstock = mysql_query('SELECT opening, closing FROM tbl_user WHERE Product = $prod ORDER BY date'); 

      while ($row2 = mysql_fetch_array($rstock)) { 
       echo "<td>".$row2['opening']."</td>"; 
       echo "<td>".$row2['closing']."</td>"; 
      } 

      echo"</tr>"; 
     } 

error

+1

你得到了什么错误?使用'JOIN's会更好。 –

+1

使用mysqli或pdo代替mysql.mysql已弃用 –

+1

(1)'Product'可能是一个字符串,所以应该引用 - >'... WHERE Product =“$ prod”...'。 (2)当你在一个循环内进行查询时,你可能只需要用'JOIN' **尤其是**当你从同一个表中选择时执行此操作。 – Sean

回答

0

快速解决方案

替换此行:

  $rstock = mysql_query('SELECT opening, closing FROM tbl_user WHERE Product = $prod ORDER BY date'); 

有了:

$rstock = mysql_query("SELECT opening, closing FROM tbl_user WHERE Product = '$prod' ORDER BY date"); 

有两个问题与原件一致:

  1. 你使用一个单引号字符内的一个变量,这是错误的,它只是用双引号的字符串工作。
  2. 变量$ prod需要用单引号括起来,因为你正在搜索一个字符串,而没有你实际告诉mysql的引用来搜索一行,其中列产品等于列内的值, $刺。

更好的解决方案

使用mysqlipdo,而不是MySQL的,因为它已经过时,并准备语句,而不是只把变量里面的字符串。

+0

与以前一样的错误;( –

+0

你可以使用echo mysql_error()在我提到的那一行后告诉我它说什么吗 –

+0

它显示'未知列'Shokubutsu'在'where子句',但在我的数据库中有这个数据....很奇怪 –