Как сделать выборку из трех таблиц?

Есть схема - Услуги - Подуслуга - Наименования для подуслуг

В общем эта страничка, где куча табличек.

Делаю запрос:

spoiler
<?php	

$link1 = mysqli_connect($db_host, $db_user, $db_password, $db_database) 
    or die("Ошибка " . mysqli_error($link1));    
$query1 ="SELECT * FROM price__name WHERE id='$id' ";
$result1 = mysqli_query($link1, $query1) or die("Ошибка " . mysqli_error($link1)); 

if (mysqli_num_rows($result1) > 0)
{
$query1 ="SELECT * FROM price__type, tovar WHERE price__type.proect_id='$id' and tovar.products_id =  price__type.id ";
$result1 = mysqli_query($link1, $query1) or die("Ошибка " . mysqli_error($link1)); 
if (mysqli_num_rows($result1) > 0)

{
$row1 = mysqli_fetch_array($result1);
do
{
	
						  ?>  
				
				
				
					<div class="col-12 price__block">
						
						<div class="price__yelow">
							<h2><?= $row1['title'] ?></h2>
						</div>
						
						<div class="price-row">
							<div class="price-8">
								<p class="price__title price__title__left">Вид работы</p>
							</div>
							<div class="price-2 tc">
								<p class="price__title">Единица измерения</p>
							</div>
							<div class="price-2 tc">
								<p class="price__title">Стоимость (руб)</p>
							</div>
						</div>
		

							<div class="price-row price__item">
								<div class="price-8">
									<p class="price__zag"><?= $row1['tovar'] ?></p>
								</div>
								<div class="price-2">
									<p class="price__count"><?= $row1['many'] ?></p>
								</div>
								<div class="price-2">
									<p class="price__price"><?= $row1['opisanie'] ?></p>
								</div>
							</div>
 		
					</div>	
					
						
					
	  <?php	
}
    while ($row1 = mysqli_fetch_array($result1));
}	}						
							
 ?>


Он работает, но выводит как на фото

6380684277615569722987.png

А нужно чтобы под электрикой были свои услуги, под другой свои.... Всю голову сломала в попытках вывести как нужно.

P.S знаю, что запрос кривой и процедурный. Но мне надо чтобы это уже просто заработало((
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Вариант 1. Предварительно сформировать структуру вида
{categoryId: {name: 'category_name', services: [services_list]}}
и выводить уже подготовленные и отсортированные данные.
Вариант 2. Добавить в запрос группировку по категории и собирать услуги каждой категории через JSON_OBJECTAGG.
Вариант 3. Добавить в запрос сортировку по категории и выводить заголовок только при смене категории.
Вариант 4. Делать отдельный запрос для списка категорий, отдельные запросы по услугам каждой категории.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы