在另一个while循环中使用while循环时出错

时间:2016-12-16 06:47:24

标签: php while-loop

我试图做一个股票记录功能,它使用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 个答案:

答案 0 :(得分: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搜索一行,其中列产品等于列中的值,该名称是变量内的任何内容$ PROD。
  3. 更好的解决方案

    使用mysqlipdo代替mysql,因为它已被弃用,并准备语句而不是仅仅将变量放在字符串中。