Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie man zwei Tabellen mit ssp.class.php verbindet

Als PaulF Wie bereits erwähnt, müssen Sie JOIN verwenden oder Unterabfrage, um den Namen des Vaters aus derselben Tabelle abzurufen.

Ich nehme an, Sie verwenden ssp.class.php Ihre Daten serverseitig nach dem von Ihnen genannten Beispiel zu verarbeiten.

Klasse ssp.class.php unterstützt keine Verknüpfungen und Unterabfragen, aber es gibt eine Problemumgehung. Der Trick besteht darin, eine Unterabfrage zu verwenden, wie unten in $table gezeigt Definition. table ersetzen mit Ihrem tatsächlichen Tabellennamen in der Unterabfrage.

$table = <<<EOT
 (
    SELECT 
      a.id, 
      a.name, 
      a.father_id, 
      b.name AS father_name
    FROM table a
    LEFT JOIN table b ON a.father_id = b.id
 ) temp
EOT;

$primaryKey = 'id';

$columns = array(
   array( 'db' => 'id',          'dt' => 0 ),
   array( 'db' => 'name',        'dt' => 1 ),
   array( 'db' => 'father_id',   'dt' => 2 ),
   array( 'db' => 'father_name', 'dt' => 3 )
);

$sql_details = array(
   'user' => '',
   'pass' => '',
   'db'   => '',
   'host' => ''
);

require( 'ssp.class.php' );
echo json_encode(
   SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns )
);

Sie müssen auch ssp.class.php bearbeiten und ersetzen Sie alle Instanzen von FROM `$table` mit FROM $table um Backticks zu entfernen.

Stellen Sie sicher, dass alle Spaltennamen eindeutig sind, andernfalls verwenden Sie AS um einen Alias ​​zuzuweisen.

ANMERKUNGEN

Es gibt auch github.com/emran/ssp Repository, das die erweiterte ssp.class.php enthält Unterstützung von JOINs.

LINKS

Siehe jQuery DataTables:Verwendung von WHERE, JOIN und GROUP BY mit ssp.class.php für weitere Informationen.