我使用以下代码:
$result = mysql_query("SELECT * FROM table LEFT JOIN table2
ON table.field = table2.field WHERE ( table.field = '$pid' )
AND ( table.field5 LIKE '%$q%' OR table.field3 LIKE '%$q%'
OR table2.field2 LIKE '%$q%' )");
if (empty($what)) {
$countpls = "0";
} else {
$countpls = mysql_num_rows($result);
}
<?php
if ($countpls > 10) {
echo '<a id=pgnvg href="' . $_SERVER['PHP_SELF'] . '?pg=' . ($startrow + 20) . '&q=' . ($what) . '">Next</a>';
} else {
echo "";
}
$prev = $startrow - 20;
//only print a "Previous" link if a "Next" was clicked
if ($prev >= 0) {
echo '<a id=pgnvg2 href="' . $_SERVER['PHP_SELF'] . '?pg=' . $prev . '&q=' . ($what) . '">Previous</a>';
} else {
echo "";
}
?>
我希望下一个只显示有更多条目要显示,而之前只有在有更多条目要循环回来时才显示。它适用于第一页bt然后在最后一页上显示尽管事实上没有更多的结果显示。
我尝试添加'else',但它仍无效。
有什么想法吗?
答案 0 :(得分:1)
如果您提供设置$countpls
的代码,将会有所帮助。这可能是导致问题的部分。另外,别的是不必要的。但是,试试这个:
if($countpls - $startrow > 20)
{
echo '<a id=pgnvg href="'.$_SERVER['PHP_SELF'].'?pg='.($startrow+20).'&q='.($what).'">Next</a>';
}
答案 1 :(得分:1)
if($countpls > 0){
$pg = $_POST['pg']?$_POST['pg']:1;
//if it's not the first page...
if($pg>1){
echo '<a id="pgnvg" href="'.$_SERVER['PHP_SELF'].'?pg='.($pg-1).'&q='.$what.'">Previous</a>';
}
//if you have more registers to show...
if(($countpls-(($pg-1)*10))>10){
echo '<a id="pgnvg" href="'.$_SERVER['PHP_SELF'].'?pg='.($pg+1).'&q='.$what.'">Next</a>';
}
}
要计算要在查询中使用的偏移量,请使用:
$offset = ($_POST['pg']-1)*10;
答案 2 :(得分:0)
如果您按照教程掌握基本概念,我认为这对您有好处。它甚至可以提供以下示例:1)替换当前的分页或2.)修复它。