任何人都可以帮助我使用此代码吗?下一个和上一个链接不起作用
$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  ";
}
$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
";
答案 0 :(得分: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>';
...
老实说,如果我是你,我会从头开始,代码非常混乱。编写伪代码以首先规划逻辑,然后编写代码。
答案 1 :(得分:0)
您的“next 20”和“prev 10”只是文字显示。它们不是开头的链接。此外,您无法处理输入。看来你的例子不完整。