Задать вопрос

Как составить запрос SQL?

Привет всем, друзья, в общем, бывает же такое, когда нужно вывести элементы в списке вот такого вида

[item]

[item]

[item] [item] [item]

[item]

[item]

Смысл думаю понятен? Причём там где идёт вывод + ещё два дополнительных [item] Там должна быть связь от самого левого [item]. Например по id Это что-то вроде подкаталога:

единственный экземпляр
экземпляр, ещё один экземпляр связанный с ним.
единственный экземпляр

Я всё стараюсь пояснить задачу. Есть две таблицы, где хранятся одни записи основных элементов. И есть ещё одна таблица, которая имеет связь с ними по id где как раз и хранятся подэлементы этих элементов.

Так вы подумаете, пфф задачка-то. Сделаем смешанный запрос, да и чёрт с ним. Да, получим то, что хотели, но не то, что нужно.

В отображении как раз-таки и нужно вывести подобного рода

[item]

[item]

[item] [item] [item]

[item]

[item]

Имея идентичную связь по всем моим описаниям. Так вот. По принципу MVC модели. Вот такая задачка. Кто что придумает по этому поводу. в smarty можно было бы поставить хук на каждый элемент. который запрашивал бы по id каждого - нет ли у него родственника во второй таблице. Но в моём случае обычный шаблонизатор index.php Если, конечно, его так можно обозвать.

Какие могут быть варианты? Хорошо, даю чёткий пример. Картину.

4hhFy8gsIEg.jpg
  • Вопрос задан
  • 2634 просмотра
Подписаться 4 Оценить Комментировать
Решения вопроса 1
Опираясь на картинку - Вам необходимо сформировать многомерный массив, готовый к выводу:
$output = array(
  'FLUENCE' => array(
    0 => 'Fluence 1'),
  'SANDERO' => array(
    0 => 'Sandero Old',
    1 => 'Sandero New')
);


Собрать такой массив можно примерно так:
while($row = mysqli_fetch_assoc(mysqli_query('SELECT ... FROM ... ORDER BY ...'))){
  // model = FLUENCE, modification = Fluence 1
  $output[$row['model']][] = $row['modification'];
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Ставим всем item поле cat=xxx.
Выводим все item группируя по cat.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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