Như PaulF
đã chỉ ra, bạn cần sử dụng JOIN hoặc truy vấn phụ để lấy tên cha từ cùng một bảng.
Tôi giả sử bạn đang sử dụng ssp.class.php để xử lý dữ liệu của bạn ở phía máy chủ dựa trên ví dụ bạn đã đề cập.
Lớp ssp.class.php không hỗ trợ kết hợp và truy vấn phụ, nhưng có một cách giải quyết. Mẹo là sử dụng truy vấn phụ như được hiển thị bên dưới trong $table Định nghĩa. Thay thế bảng table với tên bảng thực của bạn trong truy vấn phụ.
$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 )
);
Bạn cũng cần chỉnh sửa ssp.class.php và thay thế tất cả các bản sao của FROM `$table` với FROM $table để loại bỏ dấu gạch ngược.
Đảm bảo rằng tất cả các tên cột là duy nhất, nếu không hãy sử dụng AS để gán một bí danh.
LƯU Ý
Ngoài ra còn có github.com/emran/ssp
kho chứa ssp.class.php nâng cao hỗ trợ các JOIN.
LIÊN KẾT
Xem jQuery DataTables:Sử dụng WHERE, JOIN và GROUP BY với ssp.class.php để biết thêm thông tin.