使用我创建的数据库,我可以运行以JSON格式输出数据的搜索查询,然后将它们发送回我的网页。相当标准。

$searchQuery  = "SELECT * FROM alldata where $searchBy like '%$searchValue%'" ;
$searchResult = mysqli_query($con, $searchQuery);

while ($row = mysqli_fetch_row($searchResult)) {

$item = array();
    $item["dateReceived"] = convertDate($row[1]);
    $item["quoteCost"] = $row[15];
    $item["quoteNumber"] = $row[16];
    $item["quoteExpDate"] = convertDate($row[17]);
    $item["comments"] = $row[21];

    $output[] = $item;
    }

$out = array('aaData' => $output);
echo json_encode($out);

当我的查询过于笼统时,有些东西会失败,我不确定它在哪里。
我从服务器得到的响应是:
Fatal error :  Allowed memory size of 134217728 bytes exhausted (tried to allocate 14680165 bytes) in C:\xampp\htdocs\....php</b> on line <b>74</b><br />

我的内存限制在php.ini中设置为:
memory_limit=128M

如果我进入mySQL并编写SELECT * FROMalldataWHERE name like "%a%";我会得到大约35000行,每行大约有20列,但只需要一瞬间。
我可以对表进行查询的数量太少了—我可以做些什么来修复这个问题,以便我的用户可以运行更多的通用查询?

最佳答案

用户不可能希望在一个页面中同时看到所有35000行。
这将:
(1)增加脚本的执行时间。
(2)可能会使试图显示如此多数据的浏览器崩溃。
要有效执行脚本,请使用分页和/或限制查询。

10-08 19:30