Всем здрасьте, пробежался по темам, вроде ничего похожего не нашёл, может, не там смотрел. В общем, проблема такая есть 4 таблицы: shoppers - покупатели, products - товары, orders - заказы, status_orders - статусы заказов необходимо вывести список заказов покупателя в таком виде: HTML: <tbody class='tbody'> <th>Номер заказа</th> <th>Дата заказа</th> <th>Сумма заказа</th> <th>Статус заказа</th> </tbody> делаю такие запросы: PHP: // выборка покупателя $user_name = $_SESSION['Login']; $sql1 = "SELECT id_sh FROM shoppers WHERE login_sh = '$user_name'"; $result1 = mysqli_query($db, $sql1); $myrow1 = mysqli_fetch_assoc($result1); // выборка всех позиций по заказам покупателя $user_id = $myrow1['id_sh']; $sql2 = "SELECT * FROM orders WHERE shr_ord = '$user_id'"; $result2 = mysqli_query($db, $sql2); if (mysqli_num_rows($result2)>0){ // вывод нецикличной части echo " <tbody class='tbody'> <th>Номер заказа</th> <th>Дата заказа</th> <th>Сумма заказа</th> <th>Статус заказа</th> </tbody> "; // запускаю цикл по условию while($myrow2 = mysqli_fetch_array($result2)){ $num_ord = $myrow2['num_ord']; // выбираю только позиции из конкретного заказа $sql3 = "SELECT * FROM orders WHERE num_ord = '$num_ord'"; $result3 = mysqli_query($db, $sql3); $myrow3 = mysqli_fetch_array($result3); // выбираю цену позиций в заказе $prod_ord = $myrow3['prod_ord']; $sql4 = "SELECT price_pd FROM products WHERE id_pd = '$prod_ord'"; $result4 = mysqli_query($db, $sql4); $myrow4 = mysqli_fetch_array($result4); // вывод цикличной части echo " <tr> <td>".$myrow3['num_ord']."</td> <td>".$myrow3['date_ord']."</td> <td>".$myrow3['qwt_ord']*$myrow4['price_pd']." ".$val."</td> <td>".$myrow3['stat_ord']."</td> </tr>"; } здесь застрял, как дальше????
да, JOIN здесь, наверное, по-корректнее использовать, но это для меня пока сложновато, помогите составить единый запрос к 4-м таблицам. --- Добавлено --- Вопрос снят, решение такое: PHP: $sql = "SELECT `num_ord`, `date_ord`, SUM(`qwt_ord`*`price_pd`) AS `price`, `name_stord` FROM `shoppers` LEFT JOIN `orders` ON `id_sh`=`shr_ord` LEFT JOIN `products` ON `prod_ord`=`id_pd` LEFT JOIN `status_orders` ON `id_stord`=`stat_ord` WHERE `login_sh`='$user_name' AND `id_ord` IS NOT NULL GROUP BY `num_ord` ORDER BY `id_ord` ASC"; $order_sql = mysqli_query($db, $sql); $order_array = mysqli_fetch_all($order_sql, MYSQL_ASSOC); print '<table> <tbody class="tbody"> <tr> <th>Номер</th> <th>Дата</th> <th>Сумма</th> <th>Статус</th> </tr>'; foreach ($order_array as $order) { print '<tr> <td>' . $order['num_ord'] . '</td> <td>' . $order['date_ord'] . '</td> <td>' . $order['price'] . ' ' . $val . '</td> <td>' . $order['name_stord'] . '</td> </tr>'; } '</table>'; всем спасибо за внимание, тему можно закрывать