2016-12-16 3 views
0

Я пытался сделать функцию записи запаса, которая отправляет товар в строки, используя цикл while и count в другом цикле 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' было бы лучше. –

+1

использовать mysqli или pdo вместо mysql.mysql устарел –

+1

(1) 'Продукт', вероятно, является строкой, поэтому ее следует указывать ->' ... 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 для поиска строки, где произведение столбца равно значению внутри столбца, имя которого есть любое внутри variabe $ прод.

Лучшее решение

Использование mysqli или pdo вместо MySQL, так как он устарел, и подготовить заявления, а не просто положить переменные внутри строки.

+0

та же ошибка, что и раньше; ( –

+0

Можете ли вы использовать echo mysql_error() после строки, о которой я упоминал, и сказать мне, что она сказала? –

+0

показывает «Неизвестный столбец« Shokubutsu »в разделе« where clause », но в моей базе данных i есть эти данные .... weird –

Смежные вопросы