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

问题描述 投票:0回答:2

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

$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
";
php mysql pagination
2个回答
1
投票

天哪,从哪里开始?

首先,您一开始并没有处理

$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>';

...

说实话,如果我是你我就会从头开始,代码很乱。 写伪代码先规划逻辑,再编码。


0
投票

您的“下一个 20”和“上一个 10”只是文本显示。 它们一开始就不是链接。 此外,您无法处理输入。 看来您的示例不完整。

© www.soinside.com 2019 - 2024. All rights reserved.