-2

役に立たないタイトルで申し訳ありません。数百行のデータベースに到達するため、foreach ステートメント用に複数のページを作成しようとしています。最初のページのクエリを 1,30 に制限し、次に 2 番目のページを 31 ~ 60 に制限しますか? もしそうなら、それをどのようにコーディングしますか?

4

2 に答える 2

1
$totalRows = 100;// Total rows
$perPage = 30;
$pages = ceil($totalRows/$perPage);
for ($i = 0; $i<=$pages; $i++)
{
    $sql = sprintf("SELECT * FROM table LIMIT %s, %s", $i*$perPage, $perPage);
    // Execute
}
于 2012-11-27T20:50:14.880 に答える
0

クエリには大きなオーバーヘッドがかかる可能性があるため、複数のクエリを実行しないでください。むしろ、単一のクエリを実行してから、PHP を使用して必要に応じて結果を分割します。% 演算子と一緒にループ カウンターを使用して、ブレークする時間かどうかを確認できます。

たとえば、結果をループしていて、ループ変数が $i の場合、次のことができます。

if ( $i > 0 && $i % 30 == 0 ) {
    // Breaking action here ...
}

ループの 30 回ごとの反復を検出し、ロジックを実装します。

于 2012-11-27T20:53:14.003 に答える