Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP填充表最有效的方法是什么?_Php_Jquery_Mysql - Fatal编程技术网

使用PHP填充表最有效的方法是什么?

使用PHP填充表最有效的方法是什么?,php,jquery,mysql,Php,Jquery,Mysql,我正在使用jQuery脚本对一个表进行分页和搜索数据。它的工作和功能与预期的一样 我正在用包含1000多条记录的数据填充这个表,目前我正在使用一个PHP while语句来填充它 在表中code我有一条语句,首先我执行查询以获取数据,$article=mysql\u query(“SELECT*FROM articles ORDER BY published DESC”) 然后我使用while语句填充- while($articles=mysql\u fetch\u array($article)

我正在使用jQuery脚本对一个表进行分页和搜索数据。它的工作和功能与预期的一样

我正在用包含1000多条记录的数据填充这个表,目前我正在使用一个PHP while语句来填充它

表中
code我有一条语句,首先我执行查询以获取数据,
$article=mysql\u query(“SELECT*FROM articles ORDER BY published DESC”)

然后我使用while语句填充-
while($articles=mysql\u fetch\u array($article)){


虽然这确实有效,但页面加载时间很短,加载时间很长。显然,这不是最有效的填充方式。是否有“更简单”和更有效的方法?您可以将数据类型更改为更小的数据类型,以便下载更少的数据

通过选择*而不是所需的特定表,您可能下载了大量多余的数据

您还可以使用LIMIT x来限制您获得的文章/结果的数量(您可能实际上不需要在一页上显示1000篇,对吗?)


除此之外,没有什么可以加快它的速度,因为从数据库下载所需的时间太长了,而不是PHP脚本的效率。

(mysql)OFFSET+(PHP)PAGINATION+(mysql)优化(如索引键…)

您是在一个页面上显示所有1000篇文章,还是使用jQuery一次浏览一组(比如50篇)文章

如果您使用后者,为什么要获取所有1000条记录?相反,您可以将sql更改为以下内容:

 $startRecord = N // set to some value, initially 0
 $numRecords = 50;

 $query = "SELECT * FROM articles ORDER BY published DESC limit $startRecord, $numRecords";
 $result = mysql_query($query);

这将获得前50条记录。修改$startRecord变量以从您的数据集中获取其他记录。

由于您正在分页,您不能一次只返回一页数据吗?查询时间可能是您的瓶颈。在
published
列上添加索引以加快排序。使用
limit
只返回visib行-或者这就是分页的工作方式…在php中,对
where
order
列进行索引也是查询中必须使用的分页方式。而不是jquery。要加快加载新页面的速度,请使用ajax。如果将DataTables插件与jquery一起使用,它将加载整个表,然后为paginat隐藏部分表这可能就是你的问题所在。+1是的……简而言之,使用
$startRecord
w/页码加速整个过程是个好主意,比如
$startRecord=($pagenum-1)*$numRecords;
(本例)。我将如何实现这一点?如果我使用jQuery分页,它仍在获取记录,然后对数据进行排序。如果我将当前sql调整为上述值,这不只是限制前50条记录(例如),然后如何筛选到下50条记录,依此类推。