PHP и MySQL: заказ по самой последней дате и ограничению 10 - PullRequest
12 голосов
/ 27 августа 2011

Я создаю систему заметок на своем сайте и дошел до стадии, когда пользователи могут публиковать заметки в базу данных 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 />';
}

Ответы [ 6 ]

27 голосов
/ 27 августа 2011

Это должно сделать это:

$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 0, 10");
10 голосов
/ 27 августа 2011

использование:

SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 10

DESC: по убыванию (от самого нового к старому) LIMIT 10: найдены первые 10 записей.

7 голосов
/ 27 августа 2011

Попробуйте

$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 10");

Более подробное объяснение ORDER и LIMIT см. В документации MySQL о сортировке строк и базовом синтаксисе выбора (ищите пулю с описанием LIMIT).

6 голосов
/ 27 августа 2011

дают как

 ORDER BY date_time DESC

в противном случае вы сортируете их в порядке возрастания ... вот почему старшие идут первыми

5 голосов
/ 27 августа 2011

Сделай это

$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 0, 10");
0 голосов
/ 15 января 2017

Если вы хотите, чтобы ваш LIMIT был переменной, здесь я назвал его $ limit:

"SELECT * FROM tbl ORDER BY input_date DESC LIMIT 0, $limit";
...