开发者

paging next and previous links don't work!

can anyone help me with this code?the next and previous links don't work

$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($numro开发者_JAVA百科ws/$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
";


OMG, where to start?

Firstly, you're not processing $s at the beginning so the LIMIT statement will always 0,20.

Try something like:

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

...

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

Then you need to add links the previous and next text:

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

...

To be honest, I'd start again from scratch if I was you, the code is very messy. Write pseudo-code to plan the logic first, then code.


Your "next 20" and "prev 10" are simply text displays. They are not links to begin with. Further more you have no way of handling input. It appears your example is incomplete.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜