-2

そのため、クエリから非常に大きな結果セットを返し、それをページ分割されたテーブルとして Web ページに表示する方法を見つけようとしています。

たとえば、データベースから 1,000 個のアイテムを取得しようとしている場合、それらを一度に 100 個ずつページ分割されたテーブルに表示し、それらの 100 個のアイテムのみをクエリしたいと考えています。

ユーザーが検索ボックスにクエリする名前を入力すると、テーブルのページネーションをクリックできるようにしたいと思います。各ページネーションは 100 項目のみを照会するため、「ページ」1 は項目 1 ~ 100 を表示します。 ' 2 項目 101 から 200 などを表示します...

非常に大きな結果セットをクエリしてから表示をページ分割するだけでは非常に遅いため、これを行いたいと思います。

PHP と MySQL を使用してこれを行う方法について誰かアドバイスはありますか?

ページネーションは正常に機能していますが、クエリの実行方法がわかりません。

これが私が今持っているクエリです:

 mysql_query("SELECT name, age, address FROM users  WHERE name='$name' AND domain_name='$age' LIMIT 100", $localDB);

このクエリを使用して、結果セット 101-200、201-300 などのみを返すにはどうすればよいですか?

4

2 に答える 2

1

クエリで「 LIMIT 」を使用してみてください

例えば:

$query. "LIMIT 0,100"

これは、クエリ結果を制限するのに役立ちます。すべての行を取得する代わりに、要件に応じて制限できます。

于 2012-04-10T15:43:44.327 に答える
1

ページネーションの数量 (数値) が既にわかっている場合はlimit、SQL に a を追加します。

PDO を使用した例:

//url passed has a token of &page=[digit]
//Do prior error checking to verify $_GET/POST has a page variable, and it is a digit.

if ($page < 1) { $page = 1;}

$offset=$limit*($page-1); // Will give an offset of 100 on page 1, or 200 on page 2, etc


$sql = "SELECT `items` FROM items_db WHERE itemno=:itemno LIMIT :offset, 100";

$sql_query = $conn->prepare($sql); // Existing connection
$sql_query->bindParam(':itemno',$itemno, PDO::PARAM_INT);
$sql_query->bindParam(':offset', $offset, PDO::PARAM_INT);

$sql_query->execute();
于 2012-04-10T15:44:35.717 に答える