用于 jquery 数据表的自定义 MySQL 查询
Posted
技术标签:
【中文标题】用于 jquery 数据表的自定义 MySQL 查询【英文标题】:Custom MySQL query for jquery dataTables 【发布时间】:2015-01-29 04:27:51 【问题描述】:这里的问题是数据表分页不起作用 这是我创建的从数据库输出 json 的脚本
include( "../database.php" );
$q = $dbh->prepare("SELECT r.studid, r.firstname, r.middlename, r.lastname, r.Enrolling, c.courseid,c.code, s.status,s.dateapproved,s.approvedby FROM pcc_registration r, pcc_courses c, pcc_studentsubj s WHERE c.courseid= r.Enrolling AND s.studentid=r.studid AND r.status=? AND s.status=? GROUP BY r.studid");
$q->execute(array(1,2));
$rows = array();
$i = 1;
while ($r = $q->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT, PDO::FETCH_COLUMN))
$rows[] = array(
"DT_RowId" => "row_".$i,
"reg" => array(
"studid" => $r[0],
"firstname" => $r[1],
"middlename" => $r[2],
"lastname" => $r[3],
"course" => $r[6],
"dateapproved" => $r[8],
"approvedby" => $r[9]
),
);
$i++;
$rt = (STRING) $q->rowCount();
$data = array(
"draw" => 2,
"recordsTotal" => $rt,
"recordsFiltered" => $rt,
"data" => $rows
);
echo json_encode($data);
这是将 json 编码数据输出到页面的 javascript
(function($)
$(document).ready(function()
$('#dataTables-example').DataTable(
processing: true,
serverSide: true,
ajax:
url: "includes/php/approvedSched.php",
type: "POST"
,
"deferRender": true,
columns: [
data: "reg.studid",
data: "reg.lastname",
data: "reg.firstname",
data: "reg.middlename",
data: "reg.course",
data: "reg.dateapproved",
data: "reg.approvedby",
data: "reg.studid",
],
tableTools:
sRowSelect: "os",
aButtons: [
// sExtends: "editor_edit", editor: editor,
// sExtends: "editor_remove", editor: editor
]
);
);
(jQuery));
对此问题的任何答案或解决方案表示赞赏 =)
【问题讨论】:
【参考方案1】:http://datatables.net/manual/server-side
http://coderexample.com/datatable-demo-server-side-in-phpmysql-and-ajax/
此链接对使用 mySQL 的自定义服务器端有更好的帮助
【讨论】:
【参考方案2】:问题究竟出在哪里?它只是DataTable分页,还是与MySQL查询有关?我的意思是,它是显示行而问题只是分页,还是根本不显示任何内容?
我在将查询结果从 php 以 JSON 格式“传输”到 js 时遇到了一些问题(我是一个完整的网络编程菜鸟),但 DataTables 的分页并没有给我带来任何问题...
【讨论】:
以上是关于用于 jquery 数据表的自定义 MySQL 查询的主要内容,如果未能解决你的问题,请参考以下文章
来自 MYSQL PDO 的自定义格式 JSON,用于 NVD3.js
计算不适用于 Handsontable 中使用 AJAX 的自定义单元格渲染