0

私のページネーションコードでは、ページごとに5つの建物をリストし、1から5まで番号を付けています。

<?php
$page = intval($_GET['page']);
if(!$page) $page = 1;
$totalno=mysql_num_rows(mysql_query("SELECT M1_ID FROM M1Buildings WHERE M1_Cat2 BETWEEN 3 AND 4 && M1_Status=5"));
$limit = 5;
$show = $page * $limit - $limit;
$buildinglist = mysql_query("SELECT * FROM M1Buildings  WHERE M1_Cat2 BETWEEN 3 AND 4 && M1_Status=5 ORDER BY M1_Height DESC LIMIT $show,$limit",$con);
$firstrowno=1;//This will be 1 for page 1, 6 for page 2, 11 for page 3 etc..
?>

ここにいくつかのhtmlコード、そして:

<?php
$startno=1;//This is the number of each row, starting from 1
while ($rowblist = mysql_fetch_array ($buildinglist))
{
echo '<tr>
        <td>'.$startno.'</td>
<td>Some information here</td>
<td>Some information here</td>
    </tr>';
    $startno++;
    $firstrowno+5;
}
?>

最初のページは問題ありませんが、2ページ目に戻ると、再び1から始まりますが、6から始めたいのですが、どうすれば達成できるのかわかりませんでした。検索を実行しましたが、結果がありません。実は英語が限られているので、適切な単語で検索する方法がわからないと思います。わかってくれてありがとう!

4

1 に答える 1

1

オフセットを使用するには、クエリを更新する必要があります。(**申し訳ありませんが、速記を使用していることに気づきませんでした**)

質問の要点を理解するのに少し時間がかかりました。使用:$ startno = $ show + 1;

代わりに:$ firstrowno = 1;

HTMLの後:

<?php
while ($rowblist = mysql_fetch_array ($buildinglist))
{
echo '<tr>
        <td>'.$startno.'</td>
<td>Some information here</td>
<td>Some information here</td>
    </tr>';
    $startno++;
}
?>

変数は、サーバーへのトリップ間で状態を保持しません。(それらを保存してセッションから取得しない限り。

于 2013-01-28T00:06:42.720 に答える