使用PHP显示;“下一步”;";“以前的”;分页

使用PHP显示;“下一步”;";“以前的”;分页,php,pagination,Php,Pagination,我正在使用以下代码: $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

我正在使用以下代码:

   $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 "";
}
?>
$result=mysql\u查询(“从表左选择*连接表2
在table.field=table2.field上,其中(table.field='$pid')
和(表.field5类似“%$q%”或表.field3类似“%$q%”
或表2.2(如“%$q%”);
如果(空($what)){
$countpls=“0”;
}否则{
$countpls=mysql\u num\u行($result);
}
我希望只有当有更多的条目要显示时,下一个才会显示,只有当有更多的条目要循环返回时,上一个才会显示。它在第一页bt上工作,然后在最后一页下一页显示,尽管没有更多的结果显示

我尝试添加“else”,但仍然不起作用


有什么想法吗?

我认为如果你按照教程掌握基本概念,会对你有好处。它甚至附带了一个示例,可以1.)替换当前分页,或者2.)修复它


如果您提供设置的代码,
$countpls
,将会有所帮助。这可能是造成问题的原因。另外,其他的是不必要的。但是,请尝试以下方法:

if($countpls - $startrow > 20)
{
    echo '<a id=pgnvg href="'.$_SERVER['PHP_SELF'].'?pg='.($startrow+20).'&q='.($what).'">Next</a>';
}
if($countpls-$startrow>20)
{
回声';
}

抱歉,现在将其添加到问题中。请现在检查。我在哪里执行$offset。您的查询有效,但仅适用于前两页。共有28个结果,因此第一页显示10,然后下一页显示10,第二页只有上一个选项而不是下一个…您必须在查询中使用:限制10偏移$OFFSET。此外,如果您每页使用10项,则将20项更改为10项。我将在这里的代码上修复它。您必须在SQL查询中使用:
LIMIT 10 OFFSET$OFFSET
。当我使用它时,它会显示错误:您的SQL语法有错误;检查对应于你的MySQL服务器版本的手册,以便在行1OK附近使用“-10”的正确语法,考虑用SQL代码打开另一个问题来解决这个问题。
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;