PHP «while» или «if» в другом цикле «while»?

У меня есть запрос PHP / MySQL, который возвращается в таблицу HTML, и я застрял на части, где мне нужно сделать второй цикл while в этом запросе. Я не знаю, куда идти отсюда. Я пробовал пару разных способов.

Я хочу, чтобы он зациклился и дал мне первый набор данных, затем использовал «Order_ID» и получил второй набор данных и поместил второй набор в первый цикл, а затем сделайте это снова.

Вот что у меня есть …

 <?php $arrayLC = array(); $OrdersToShip = mysql_query(" SELECT * FROM Orders o WHERE o.LotCoded = 0 ORDER BY o.Order_ID"); if ($OrdersToShip) { while ($info = mysql_fetch_array($OrdersToShip)) { $Order_ID = $info['Order_ID']; $Customer_ID = $info['Customer_ID']; $OrderDate = $info['OrderDate']; $lotCodes = mysql_query("SELECT lotCode, Qty FROM `OrdersLotCodes` WHERE `Order_ID` = '".$Order_ID."'"); if($lotCodes) { while ($info = mysql_fetch_array($lotCodes)) { $lotCode = $info['lotCode']; $Qty = $info['Qty']; array_push($arrayLC, $lotCode, $Qty); } } echo '<tr class="OLine"> <td><input type="button" class="button viewThis" value="VIEW"></td> <td>'.$Order_ID.'</td> <td>'.$Customer_ID.'</td> <td>'.$OrderDate.'</td> <td>'.print_r($arrayLC).'</td> </tr>'; } } else { echo "encountered an error.".mysql_error(); } mysql_close($conn); ?> 

Что мне не хватает? Что мне делать?

::РЕДАКТИРОВАТЬ::

Я изменил mysql_query на:

 SELECT o.Order_ID, o.Customer_ID, o.OrderDate, olc.lotCode, olc.qty FROM Orders o LEFT JOIN OrdersLotCodes olc ON o.Order_ID = olc.Order_ID WHERE o.LotCoded = 0 ORDER BY o.Order_ID 

Теперь, как я могу взять вывод с помощью OrderLotCodes и поместить их в массив, который будет напечатан в таблице? Как бы я поместил их в массив, а затем связал связанный с Order_ID?

Одна из проблем, которые я вижу, заключается в том, что вы не перезапускаете $arrayLC внутри внешнего цикла while; поэтому коды из каждого порядка присоединяются к кодам предыдущего, до бесконечности.

 if($OrdersToShip) { while ($info = mysql_fetch_array($OrdersToShip)) { $arrayLC = array(); // SHOULD BE IN HERE! 

Кроме того, когда вы получаете этот код, вы должны думать о том, что для N заказов этот код выполняет N + 1 запросов (1 для получения заказов и по одному для каждого заказа). Это действительно неэффективный способ делать то, что вы можете получить одну и ту же информацию только с одним запросом, если вы выполняете левое внешнее соединение . Итак, ваша следующая остановка должна быть прочитана в SQL-соединениях и как они могут помочь вам получить связанные данные.