Ответ 1
Это должно сделать это:
$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 0, 10");
Я создаю систему заметок на своем сайте, и я дошел до того места, где пользователи могут отправлять заметки в базу данных MySQL с помощью PHP, а затем PHP выдает их на странице. Однако, когда они печатают/эхо-сигналы, сначала появляется самый старый, но я хочу сначала самого последнего. Я также хочу, чтобы их ограничили до 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 записей.
Try
$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 10");
Для более подробного объяснения ORDER
и LIMIT
посетите статьи doc MySQL о сортировке строк и базовом выберите синтаксис (найдите пулю, описывающую 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";