我正在使用jQuery数据服务器端处理(https://datatables.net)。
首先,我正在分享我的数据库结构,您知道数据存储在数据库中的方式以及如何呈现数据。
Table Row Master:
Table Column Master:
表数据大师:
这是三个表
我正在使用限制和搜索对数据表进行查询但是我无法通过订购任何列来实现它,因为所有数据都保存在一个数据库表格表中(表数据主数据)所以你能不能请提供解决方案,或建议我采取任何其他方式。
$strQuery = "SELECT tc.id as column_id,tr.id as row_id,td.data_value,td.link_type,td.link_value,td.is_new_tab FROM
(
SELECT tc.id as column_id,tr.id as row_id,td.data_value,td.link_type,td.link_value,td.is_new_tab
from table_data td
INNER join table_columns tc on tc.id=td.column_id and tc.table_id='1'
INNER join table_rows tr on tr.id=td.row_id and tr.table_id='1'
where td.table_id='1' and td.deletedBy=0 ".$strWhere."
GROUP BY td.id order by tr.isSequence ASC,tc.isSequence ASC
)
as tdata
INNER JOIN table_data td on td.row_id = tdata.row_id
INNER JOIN table_rows tr ON tr.id = td.row_id
INNER JOIN table_columns tc ON tc.id = td.column_id
GROUP by td.id ORDER BY tr.isSequence asc,tc.isSequence asc ";
$cols = ((int)$_POST['cols']); // number of cols
$top = 0;
if(isset($_POST['start']))
{
$top = ($cols) * ((int)$_POST['start']);
}
$limit = $cols *10;
if(isset($_POST['length']))
{
$limit = $cols * ((int)$_POST['length']);
}
$strQuery .= " LIMIT ".$top.",".$limit." ";
我想获取10行然后我想要60条记录并将数组准备为row和cols数组
foreach ($list_data['data'] as $tableData) {
$rowData[$tableData["row_id"]][$tableData["column_id"]] = $tableData;
}
这就是我获得最终数组的方式,但我没有按功能排序。所以请提供我的建议。