-1

ここでコードのページネーションを作成しようとしていますが、問題が発生しています。何をしても機能しないようで、可能であれば支援が必要です。この例1に似たものを試しましたが、決して動作しました:/

例1:

$page = (int)$_GET['page'];
$perpage = 5;
if ($page<1) $page = 0;

マイコード

<?php

echo '<div id="block" border="1" width="200" style="float:center">';
$i = 0;
$getquery=mysql_query("SELECT * FROM dogs ORDER by ID LIMIT 30");
while($rows=mysql_fetch_assoc($getquery)){

    $id=$rows['id'];
    echo '<a href="mypage.com/index.php?img='. $id .'">
        <img src="/thumb/'. $id .'.jpg" width="125" height="125" alt="" />
    </a>';

    $i++;
    if($i == 10) {
        echo '<br />';
        echo '<br />';
        $i = 0;
    }
}
echo '</div>';

?>
4

3 に答える 3

1

Change :

mysql_query("SELECT * FROM dogs ORDER by ID LIMIT 30");

To :

$start = $page * $perpage;
mysql_query("SELECT * FROM dogs ORDER by ID LIMIT $start, $perpage ");
于 2013-10-24T11:03:42.097 に答える
0

これは、制限 30 を使用しているためです...常に最初の 30 行が返されます...次のようなものを使用する必要があります: LIMIT $page*$perpage,$perpage

これにより、mysql は X から開始するため、$page*$perpage になり、Y 行、$perpage を選択します。

于 2013-10-24T11:02:23.103 に答える
0

You have to add OFFSET clause to your SQL. To calculate it, you simply do

$offset=$pageNumber * $resultsPerPage 

$pageNumber is 0 based and $resultsPerPage is the same as value in LIMIT clause

于 2013-10-24T11:03:56.660 に答える