分页下一个和上一个链接不起作用!

时间:2009-11-21 12:35:01

标签: php mysql paging

任何人都可以帮助我使用此代码吗?下一个和上一个链接不起作用

$limit=20;
mysql_connect("localhost","root","");
mysql_select_db("autoschool") or die("Unable to select database");
$query = "select * from student";
$numresults=mysql_query($query);
$numrows=mysql_num_rows($numresults);
if ($numrows == 0)
{
echo "empty";
}
if (empty($s)) {
$s=0;
}
$query .= " limit $s,$limit";
$result = mysql_query($query) or die("Couldn't execute query");
$count = 1 + $s ;
while ($row= mysql_fetch_array($result)) {
$title = $row["id"];
echo "$count.)$title"."
" ;
$count++ ;
}
$currPage = (($s/$limit) + 1);
echo "
";
if ($s>=1) { // bypass PREV link if s is 0
$prevs=($s-$limit);
print " <<
Prev 10&nbsp ";
}
$pages=intval($numrows/$limit);
if ($numrows%$limit) {
$pages++;
}
if (!((($s+$limit)/$limit)==$pages) && $pages!=1) {
$news=$s+$limit;
echo " Next 20 >>";
}
$a = $s + ($limit) ;
if ($a > $numrows) { $a = $numrows ; }
$b = $s + 1 ;
echo "
Showing results $b to $a of $numrows
";

2 个答案:

答案 0 :(得分:1)

OMG,从哪里开始?

首先,您没有在开头处理$s,因此LIMIT语句将始终为0,20

尝试类似:

if (isset ($_GET['page']) ){
  $s=round($_GET['page'];
  if($s<0) {
    $s=0;
  }
}
else {
  $s=0;
}

...

$query .= " LIMIT ".($s*$limit).",$limit";

然后您需要添加上一个和下一个文本的链接:

if ($s>0) { // bypass PREV link if s is 0
  echo '<a href="myscript.php?page='.($s-1).'">Prev </a>';
}

...


   echo echo '<a href="myscript.php?page='.($s+1).'">Next </a>';

...

老实说,如果我是你,我会从头开始,代码非常混乱。编写伪代码以首先规划逻辑,然后编写代码。

答案 1 :(得分:0)

您的“next 20”和“prev 10”只是文字显示。它们不是开头的链接。此外,您无法处理输入。看来你的例子不完整。