Unten ist mein Code ohne serverseitige Verarbeitung, aber da es viele Zeilen erzeugt und erheblich wachsen wird, muss ich serverseitige Verarbeitung verwenden.Datatables serverseitige Verarbeitung INNER JOIN oder mehrere Tabellen
DB-Tabellen (nicht alle Felder enthalten, aber diese sind diejenigen, ich will und die Felder zu 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)
Ich möchte die UNIXTIMESTAMP als Datum in der Lage sein anzuzeigen ('d /meine');
Würde diese Arbeit für die innere
$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
";
Original-PHP-JOIN-Version ohne serverseitige Verarbeitung:
$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>';
}
Ich habe meine serverseitige Verarbeitung woking gut mit Databases aber ohne Verbindung zu den anderen Tabellen. Diese Tabelle gibt nur IDs zurück und ich möchte den Wert aus einer anderen Tabelle abrufen können, wie oben gezeigt.
Muss ich eine innner Join verwenden? Wenn ja, wie kann ich mit server_processing.php Skript integrieren: Ich habe dieses verwendet: http://datatables.net/release-datatables/examples/data_sources/server_side.html
Oder kann ich meine obige Methode in server_processing.php integrieren.
Jede Anleitung würde sehr geschätzt werden. Vielen Dank im Voraus.
@: Nicola Peluchetti: Ich habe die Frage mit der DB-Struktur geändert haben. Danke – Codded
@: Nicola Peluchetti: Updates mit meinem INNEREN JOIN, sieht das richtig aus? – Codded
@Codded ja sollte es funktionieren, aber in jedem Fall sollten Sie die Abfrage protokollieren (Sie können firePHP verwenden) und überprüfen, dass es in mysql –