【发布时间】:2012-03-26 10:03:50
【问题描述】:
以下是我的代码,没有服务器端处理,但由于它产生许多行并且会显着增长,我需要使用服务器端处理。
DB 表(并非所有字段都包括在内,但这些是我想要的,也是 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 显示为 date('d/m/Y');
这对 INNER JOIN 有用吗
$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>';
}
我的数据表的服务器端处理工作正常,但没有链接到其他表。此表仅返回 ID,我希望能够从另一个表中获取值,如上所示。
我需要使用内部联接吗?如果是这样,我如何与 server_processing.php 脚本合并: 我用过这个:http://datatables.net/release-datatables/examples/data_sources/server_side.html
或者我可以将上述方法合并到 server_processing.php 中。
任何指导将不胜感激。 提前致谢。
【问题讨论】:
标签: jquery jquery-plugins datatables