我在对从 Mysql 数据库提取的一些结果进行分页时遇到问题。
这是与分页相关的代码:
$max_results = 20; //Max listed query results
if(!isset($_GET['pg'])){ $pg = 1; } else { $pg = $_GET['pg']; }
$from = (($pg * $max_results) - $max_results);
/// START of MySQL results – Page numbering
$space_separated = implode(" ", $keywords_array);
/// Count total
$totals = mysql_result(mysql_query("SELECT COUNT(id)
FROM products
WHERE MATCH (`desc`)
AGAINST ('".$space_separated."' IN BOOLEAN MODE)
ORDER BY `desc`
LIMIT $from, $max_results"),0);
$total_pgs = ceil($totals / $max_results);
$tempVar = 0; //Used in the generation of order form
///Now we search for our search term, in the field the user specified
// Page limiter & result builder
$dataQuery = "SELECT id, `desc`, price1, pack, measure, quantity
FROM products
WHERE MATCH (`desc`)
AGAINST ('".$space_separated."' IN BOOLEAN MODE)
ORDER BY `desc`
LIMIT $from, $max_results";
$result1 = mysql_query($dataQuery);
$num_sql = mysql_num_rows ($result1);
$data = mysql_query($dataQuery) or die(mysql_error());
$pageContent .= '
<div>
<p>Results: '.$totals.'</p>
<p>Viewing page '.$pg.' of '.$total_pgs.'</p>
</div>
<!-- end .aliLeft --></div>
';
$pageContent .= '
<p>'.$paginator.'</p>
';
/// Display results
if ($num_sql > 0 ) {$i=0;
while ($i < $num_sql) {
$holsite = mysql_result($result1,$i,"desc");
$pageContent .= ''.$holsite.'';
++$i;}}
$pageContent .= '
<p>'.$paginator.'</p>
';
我正在根据本教程进行改编:http://www.webdesign-4-beginners.co.uk/web-design-blog/2009/12/mysql-results-page-numbering/
我收到以下 mysql 错误:
警告:mysql_result() [function.mysql-result]:无法跳转到第 302 行/path-to/orders-layout.php 中 MySQL 结果索引 13 上的第 0 行
此外,当查看第 2 页(共 2 页)时,结果计数为空白,并且分页不显示页码,仅显示“上一页”。在第 1 页(共 2 页)中,一切看起来都正常吗? 有谁知道我做错了什么吗?
最佳答案
您不得限制总计查询。从中删除限制。
关于PHP - 分页 - 为什么我收到此错误 : Unable to jump to row 0 on MySQL result index 13?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7298046/