Я пробовал разные способы сделать это, но ... Итак, мой последний вариант, попросите о помощи.MySQLi из нескольких таблиц
У меня есть 3 таблицы DB. В таблице OBJECTS я хранил каждый веб-сайт OBJECTS, например имена фильтров, имена SAM и SAMP (специфичные для системы). В ITEMS я сохранил все элементы для системы (это проекты реального мира с несколькими дополнительными параметрами) и OBJECTS_LINKED, я сохранил все связанные элементы с ОБЪЕКТАМИ и ITEMS.
Затем я получил систему, где пользователь может выбрать какой-либо параметр из фильтра, затем я получил список элементов ... Пример: в OBJECTS_LINKED У меня есть 3 элемента с именем - фильтр, они будут показаны, но мне нужно , где проблема. Мне нужно показать эти элементы в списке, например, имя ОБЪЕКТА, заказанное ASC.
Прямо сейчас, все работает, кроме заказа. Код написан на PHP. Я получил SQL-запрос, где я получил этот идентификатор элемента, где name является фильтром из связанных объектов, тогда есть цикл, где я получил все объекты id, где имя объекта SAM или SAMP, и оно связано с идентификатором элемента, я получил это от OBJECTS LINKED и OBJECTS с INNER JOIN ... Но проблема в том, что, когда я впервые получил этот идентификатор элемента, они попали в некоторый порядок, и в следующем цикле он не учитывает мой SQL QUERY ORDER BY, но он идет, как сказал цикл ... поэтому, я думаю, это можно сделать в одном запросе без этого цикла, но я не знаю, как, потому что я плохо разбираюсь в SQL.
---- OBJECTS ---- id - content - name 1 - 1.2. Text - SAM 2 - 1.3. Text - SAMP 3 - 1.1. Text - SAM 4 - Filter - Filter
---- ITEMS ---- id - some columns... 1 - ... 2 - ... 3 - ...
---- OBJECTS_LINKED ---- id - obj_id - item_id - name id - 1 - 1 - SAM id - 2 - 1 - FILTER id - 4 - 2 - SAM id - 3 - 3 - SAMP
$SQL = "SELECT * FROM OBJECTS_LINKED WHERE obj_id = '$obj_id' AND link_name = 'FILTER'"; while(){ $SQL = "SELECT ol.*, o.obj_content, i.item_type, i.item_kartina FROM OBJECTS_LINKED AS ol INNER JOIN ITEMS AS i ON i.item_id = ol.item_id INNER JOIN OBJECTS AS o ON o.obj_id = ol.obj_id WHERE ol.item_id = '$item_id' AND if(i.item_type = 'SAM', link_name = 'SAM', link_name = 'SAMP') ORDER BY o.obj_content ASC"; while(){ ---- list of items (SAM or SAMP) name ---- } }
Является ли переменная '$ item_id' в вашем втором запросе результатом запроса первого выбора? – Reversal
Рассмотрите возможность добавления полного кода: то, как вы показали свой код, просто сбивает с толку, и это нам не помогает. – Reversal
@Reversal yes, is – brass