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.