0

以下のコードを使用して、MySQLテーブルの最新の5つのエントリをエコーアウトしようとしていますが、結果の数を制限する方法を理解できないようです。結果の数を制限することで、誰かが助けてくれますか? 5行まで?

<table>
<?php
require_once($_SERVER['DOCUMENT_ROOT'] . "/resources/pdo.php"); 
$q = "SELECT * FROM `content` ORDER BY `id`";
$query = $pdo->query($q);
$data = array_reverse($query->fetchAll());
foreach ($data as $row) {
echo "<tr><td>{$row['title']}</td><td>{$row['id']}</td></tr>";
}
?>
</table>

ありがとう!

私はPHPを初めて使用するので、助けが必要です。この質問が役に立たない場合は、始めたばかりなので助けてください。

4

4 に答える 4

4

SQLクエリで句を使用LIMITします。

SELECT * FROM `content` ORDER BY `id` DESC LIMIT 5

マニュアルから:

LIMIT句を使用して、SELECTステートメントによって返される行数を制限できます。LIMITは、1つまたは2つの数値引数を取ります。これらは両方とも非負の整数定数でなければなりません(プリペアドステートメントを使用する場合を除く)。

2つの引数を使用すると、最初の引数は返される最初の行のオフセットを指定し、2番目の引数は返される行の最大数を指定します。最初の行のオフセットは0(1ではありません)です。

于 2012-07-09T11:59:36.313 に答える
3

LIMITワードを使用します。

 SELECT * FROM `content` ORDER BY `id` DESC LIMIT 5
于 2012-07-09T11:59:19.777 に答える
2

order by id descarray_reverseを取り除き、limit 5返される結果の数を制限します。

$q = "SELECT * FROM `content` ORDER BY `id` DESC LIMIT 5";
...
$data = $query->fetchAll();

グローバルガイドラインとして:クエリを作成するときは、結果セットが必要なものにできるだけ近くなるように、つまり、後で追加の並べ替えやフィルタリング操作を行わないようにクエリを作成してください。

  1. 使用しないデータをdbserverに送信させるのは無駄です
  2. Webサーバーでデータを再フィルタリング/再フィルタリングする必要があると、Webサーバーのパフォーマンスが低下し、大きな結果セットの場合は、大量のメモリも消費する可能性があります。
于 2012-07-09T12:00:39.357 に答える
1

データベースからデータをプルするときは、通常LIMIT、返されたデータを読み取るときにループの反復をカウントするのではなく、MySQLクエリを介してを設定します。

$q = "SELECT * FROM `content` ORDER BY `id` LIMIT 5";
于 2012-07-09T12:00:47.360 に答える