Comme PaulF
souligné, vous devez utiliser JOIN
ou sous-requête pour récupérer le nom du père dans la même table.
Je suppose que vous utilisez ssp.class.php
pour traiter vos données côté serveur sur la base de l'exemple que vous avez mentionné.
Classe ssp.class.php
ne prend pas en charge les jointures et les sous-requêtes, mais il existe une solution de contournement. L'astuce consiste à utiliser la sous-requête comme indiqué ci-dessous dans $table
définition. Remplacer table
avec votre nom de table réel dans la sous-requête.
$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 )
);
Vous devez également modifier ssp.class.php
et remplacer toutes les instances de FROM `$table`
avec FROM $table
pour supprimer les backticks.
Assurez-vous que tous les noms de colonne sont uniques, sinon utilisez AS
pour attribuer un alias.
REMARQUES
Il y a aussi github.com/emran/ssp
référentiel contenant ssp.class.php
amélioré prenant en charge les JOIN.
LIENS
Voir jQuery DataTables :Utilisation de WHERE, JOIN et GROUP BY avec ssp.class.php pour plus d'informations.