Подробное
Представьте себе, что у нас есть таблицы, которая выглядит так:Как искать в нескольких таблиц в MySQL
Как вы видите, questions
связан с 4 таблиц через внешний ключ.
Использование Datatables с server-side processing (я модифицировал данный PHP-код для работы с несколькими таблицами) для клиентов.
Вопрос
То, что я хочу сделать, это следующее: когда пользователь ищет что-то, посылает ключевые слова клиентской через AJAX в ServerSide. Кусок кода, который обрабатывает поиск на официальном сайте (link to page) выглядит следующим образом:
$sWhere = "";
if (isset($_GET['sSearch']) && $_GET['sSearch'] != "")
{
$sWhere = "WHERE (";
for ($i=0 ; $i<count($aColumns) ; $i++)
{
$sWhere .= "`".$aColumns[$i]."` LIKE '%".mysql_real_escape_string($_GET['sSearch'])."%' OR ";
}
$sWhere = substr_replace($sWhere, "", -3);
$sWhere .= ')';
}
Я хочу изменить эту часть, чтобы обрабатывать несколько обработок таблицы.
Для примера: Если пользователь ввел имя какого-либо раздела (имя находится в таблице sections
, столбец section
), как я могу найти вопросы (от questions
table), связанные с этим разделом? Возможно ли это с одним и единственным запросом?
Любые предложения будут высоко оценены :)
Вы хотите взглянуть на операторы SQL 'join' –
Пока: избавиться от таблицы предметов. (или ссылаться на него через таблицы N <> M) – wildplasser
@wildplasser Я не могу избавиться. Это очень хорошая структура. Здесь была единственная проблема. На самом деле проблема может быть решена с огромным количеством кода. Но я ищу новую идею. BTW, что вы подразумеваете под ссылкой через N <> M tables'? –