Ниже приведен мой код без обработки на стороне сервера, но поскольку он генерирует много строк и будет значительно расти, мне нужно использовать обработку на стороне сервера.
Таблицы БД (не все поля включены, но это те поля, которые мне нужны, и поля для INNER JOIN):
course_modules - id (pk), course(course.id), module(module.id), added(UNIXTIMESTAMP)
course - id (pk), category(course_categories.id), fullname(text)
course_categories- id (pk), name(text)
modules- id (pk), name(text)
Я хочу отображать UNIXTIMESTAMP в качестве даты ('d / m / Y');
Будет ли это работать для внутреннего соединения
$sQuery = "
SELECT SQL_CALC_FOUND_ROWS ".str_replace(" , ", " ", implode(", ", $aColumns))."
FROM $sTable
INNER JOIN modules ON $sTable.module = modules.id
INNER JOIN course ON $sTable.course = course.id
INNER JOIN course_categories ON course.category = course_categories.id
$sWhere
$sOrder
$sLimit
";
Оригинальная версия php без обработки на стороне сервера:
$mods = get_records_sql("SELECT * FROM {$CFG->prefix}course_modules");
foreach ($mods as $mod)
{
$thecourse = get_record('course','id',$mod->course);
$themodule = get_record('modules','id',$mod->module);
$thecat = get_record('course_categories','id',$thecourse->category);
echo '<tr>';
echo '<td>'.$thecat->name.'</td>';
echo '<td>'.$thecourse->fullname.'</td>';
echo '<td>'.$themodule->name.'</td>';
echo '<td>';
echo date('d/m/Y', $mod->added);
echo'</td>';
echo '</tr>';
}
У меня хорошо работает обработка на стороне сервера с моими таблицами данных, но без ссылок на другие таблицы. Эта таблица возвращает только идентификаторы, и я хочу иметь возможность получить значение из другой таблицы, как показано выше.
Нужно ли использовать внутреннее соединение? Если так, как я могу соединиться со сценарием server_processing.php:
Я использовал это: http://datatables.net/release-datatables/examples/data_sources/server_side.html
Или я могу включить вышеописанный метод в server_processing.php.
Любое руководство будет с благодарностью.
Заранее спасибо.