我正在开发项目,它将限制PHP流程,可能很多人会使用该页面。因此,我正在尝试对其进行优化,以便在客户端处理最多(但安全)的事情。
$result = mysqli_query($db, "SELECT * FROM userdata");
/*return $result; */
while ($row = mysql_fetch_array($result)) {
//do sth, e.g. get row to array
}
/*return $array;*/
在这种情况下,我的问题很简单。 循环遍历每一行需要时间,并将阻止php进程很长一段时间。 所以,这里有一些解决方案,你只需要发送SQL请求,从DB服务器就可以获得一些数据"的形状响应,我将能够直接传递给jquery,我在那里可以使用客户端资源而不是服务器资源来处理/排序/编辑/查看结果吗?
(到目前为止,发出sql请求并将$result
传递给jquery变量似乎没有返回任何内容,jquery变量为空)
提前致谢
答案 0 :(得分:0)
首先,看起来你正在将mysql与mysqli混合使用。
mysqli方法:
mysqli_query($db, "SELECT * FROM userdata");
mysql方法:
mysql_fetch_array($result)
你不应该这样做。不推荐使用mysql方法,这两种方法完全不同,它们不是一起工作的,事件是它的工作,这样做是完全错误的。
至于你的问题,为了将获取的db数据结果传递给jQuery或Javascript进行客户端处理,你可以将结果数组转换为JSON字符串。
这样做:
$row = mysqli_fetch_array($result);
echo json_encode($row);
然后使用jquery,对php脚本进行ajax调用。并解析json数据。
答案 1 :(得分:0)
我认为你要求这个功能:
http://www.w3schools.com/php/func_mysqli_fetch_all.asp
将所有行检索到单个嵌套关联数组中。然后,您可以使用JSON_encode()对此数组进行编码,以使用客户端javascript进行处理。