Я создаю систему заметок на своем сайте, и я дошел до того места, где пользователи могут отправлять заметки в базу данных 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 записей.
Пытаться
$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 10");
Для более подробного объяснения ORDER
и LIMIT
посетите статьи docs 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";