ホームページ >バックエンド開発 >PHPチュートリアル >PHPのページめくりコードにエラーがあります。専門家に問い合わせてください。 (残り 27 ポイントのみ)
実行結果は、「次のページ」をクリックしても、データベースのコンテンツの最初のページのみが表示されます。
<?php $pages=ceil($count/$list_num); echo "<table width=780 border=0 cellspacing=0 cellpadding=0 align=center class='text'> <tbody> <tr> <td width='159'><font color='#ff0000'>目前共有".$count."条记录</font> </td> <td width='205'>共".$pages."页</td>"; if($offset){ $preoffset=$offset-$list_num; print "<td width='132'><a href=\"$PHP_SELF?offset=$preoffset\">上一页</a></td>";} else { echo "<td width='132'>上一页</td>"; } $newoffset=$offset+$list_num; if(($pages!=0)&&(($newoffset/$list_num)!=$pages)) { print("<td width='158'><a href=\"$PHP_SELF?offset=$newoffset\">下一页</a></td>"); } else{ echo "<td width='158'>下一页</td>";} $pageno=($offset/$list_num)+1; echo "<td width='112' class=text>第<input class=text type='text' size='4'value=".$pageno." readonly>页</td> <td width='4'> </td> </tr> </table>"; ?>
Chrome を使用して要素を検査し、「次のページ」への接続があるかどうかを確認します。
その後、投稿者がその日に教えてくれたものを使用できます
要約($_REQUEST ); これを先頭に追加する必要があります
<?phpif ($_GET[offset]) { $offset = $_GET[offset];}$count =100 ;$list_num =5 ; $pages=ceil($count/$list_num); echo "<table width=780 border=0 cellspacing=0 cellpadding=0 align=center class='text'> <tbody> <tr> <td width='159'><font color='#ff0000'>目前共有".$count."条记录</font> </td> <td width='205'>共".$pages."页</td>"; if($offset){ $preoffset=$offset-$list_num; print "<td width='132'><a href=\"$PHP_SELF?offset=$preoffset\">上一页</a></td>";} else { echo "<td width='132'>上一页</td>"; } $newoffset=$offset+1;//$list_num; if(($pages!=0)&&(($newoffset/$list_num)!=$pages)) { print("<td width='158'><a href=\"$PHP_SELF?offset=$newoffset\">下一页</a></td>"); } else{ echo "<td width='158'>下一页</td>";} $pageno=$offset; echo "<td width='112' class=text>第<input class=text type='text' size='4'value=".$pageno." readonly>页</td> <td width='4'> </td> </tr> </table>"; ?><?php?>
<?phpif ($_GET[offset]) { $offset = $_GET[offset];}$count =100 ;$list_num =5 ; $pages=ceil($count/$list_num); echo "<table width=780 border=0 cellspacing=0 cellpadding=0 align=center class='text'> <tbody> <tr> <td width='159'><font color='#ff0000'>目前共有".$count."条记录</font> </td> <td width='205'>共".$pages."页</td>"; if($offset){ $preoffset=$offset-$list_num; print "<td width='132'><a href=\"$PHP_SELF?offset=$preoffset\">上一页</a></td>";} else { echo "<td width='132'>上一页</td>"; } $newoffset=$offset+1;//$list_num; if(($pages!=0)&&(($newoffset/$list_num)!=$pages)) { print("<td width='158'><a href=\"$PHP_SELF?offset=$newoffset\">下一页</a></td>"); } else{ echo "<td width='158'>下一页</td>";} $pageno=$offset; echo "<td width='112' class=text>第<input class=text type='text' size='4'value=".$pageno." readonly>页</td> <td width='4'> </td> </tr> </table>"; ?><?php?>
<?phpif ($_GET[offset]) { $offset = $_GET[offset];}$count =100 ;$list_num =5 ; $pages=ceil($count/$list_num); echo "<table width=780 border=0 cellspacing=0 cellpadding=0 align=center class='text'> <tbody> <tr> <td width='159'><font color='#ff0000'>目前共有".$count."条记录</font> </td> <td width='205'>共".$pages."页</td>"; if($offset){ $preoffset=$offset-$list_num; print "<td width='132'><a href=\"$PHP_SELF?offset=$preoffset\">上一页</a></td>";} else { echo "<td width='132'>上一页</td>"; } $newoffset=$offset+1;//$list_num; if(($pages!=0)&&(($newoffset/$list_num)!=$pages)) { print("<td width='158'><a href=\"$PHP_SELF?offset=$newoffset\">下一页</a></td>"); } else{ echo "<td width='158'>下一页</td>";} $pageno=$offset; echo "<td width='112' class=text>第<input class=text type='text' size='4'value=".$pageno." readonly>页</td> <td width='4'> </td> </tr> </table>"; ?><?php?>
データベースのSQL文ですが、どうやって書けばいいのかわかりません。
一般的に select * from `table` order by id desc limit 1 $offset*$count/$list_num ,($offset+1)*$count/$list_num
次のコードは私自身のデータベースでテストされています。 run
<?phpif ($_GET[offset]) { $offset = $_GET[offset];}$count =100 ;$list_num =5 ; $pages=ceil($count/$list_num); echo "<table width=780 border=0 cellspacing=0 cellpadding=0 align=center class='text'> <tbody> <tr> <td width='159'><font color='#ff0000'>目前共有".$count."条记录</font> </td> <td width='205'>共".$pages."页</td>"; if($offset){ $preoffset=$offset-1; print "<td width='132'><a href=\"$PHP_SELF?offset=$preoffset\">上一页</a></td>";} else { echo "<td width='132'>上一页</td>"; } $newoffset=$offset+1;//$list_num; if(($pages!=0)&&(($newoffset/$list_num)!=$pages)) { print("<td width='158'><a href=\"$PHP_SELF?offset=$newoffset\">下一页</a></td>"); } else{ echo "<td width='158'>下一页</td>";} $pageno=$offset; echo "<td width='112' class=text>第<input class=text type='text' size='4'value=".$pageno." readonly>页</td> <td width='4'> </td> </tr> </table>"; ?><?phpinclude 'mysqlconnect.php';$limit1 = $offset*$count/$list_num ;$limit2 = ($offset+1)*$count/$list_num;$sql = "select * from mealtable order by mealuid desc limit $limit1,$limit2";$query = mysql_query($sql);var_dump($query);while ($a = mysql_fetch_row($query)) { print_r($a);}?>
データベースのSQL文ですが、どうやって書けばいいのかわかりません。
一般的に select * from `table` order by id desc limit 1 $offset*$count/$list_num ,($offset+1)*$count/$list_num
次のコードは私自身のデータベースでテストされており、動作します
rreeさん、本当にありがとうございました!