私は自分のサイトにメモシステムを構築しており、ユーザーがPHPを使用してMySQLデータベースにメモを投稿し、次にPHP printsただし、印刷/エコーアウトすると、最も古いものが最初に表示されますが、最新のものを最初に表示します。また、それらを10に制限して、ページに表示されるのは10のみです。 PHPコード、あなたの助けは大いに感謝されます:
// initialize some variables
$notedisplaylist = "";
$myObject = "";
$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time");
while($row = mysql_fetch_array($result)){
$note_title = $row["note_title"];
$note_body = $row["note_body"];
$date = $row["date_time"];
$notedisplaylist .= '<h2>' . $note_title . '</h2><br /><p>' . $note_body . '</p><hr /><p>Noted: ' . $date . '</p><hr /><br />';
}
これはそれをするべきです:
$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 0, 10");
使用する:
SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 10
DESC:降順(最新から古い順)LIMIT 10:最初の10レコードが見つかりました。
試す
$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 10");
ORDER
およびLIMIT
の詳細な説明については、MySQLドキュメントの 行のソート および基本的な select syntax ( LIMIT
を説明する箇条書き。
のように与える
ORDER BY date_time DESC
そうでない場合は、昇順で並べ替えます。それが古いものが最初に来る理由です
これを行う
$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 0, 10");
LIMITを変数にしたい場合は、ここで$ limitという名前を付けます。
"SELECT * FROM tbl ORDER BY input_date DESC LIMIT 0, $limit";