Вопрос № 59847: Уважаемые, как "выдрать" из базы данных:
1. Последнюю добавленную запись.
2. Запись с наибольшим значением какого-то поля (INT, число).
3. Как выбирать записи с конца? Допустим, последние 10 записей.
4. Случайную запись? Тут...
Вопрос № 59.847
Уважаемые, как "выдрать" из базы данных:
1. Последнюю добавленную запись.
2. Запись с наибольшим значением какого-то поля (INT, число).
3. Как выбирать записи с конца? Допустим, последние 10 записей.
4. Случайную запись? Тут мысль вроде правильная есть, но всё таки?
Отвечает: Козлов А. С.
Здравствуйте, 1!
Код подключения к базе я не привожу.
1. Примените функцию mysql_insert_id():
$id = mysql_insert_id();
$r = mysql_query("SELECT * FROM table WHERE id=$id");
$row = mysql_fetch_array($r);
После выполнения данного кода в переменной $row будет последняя вставленная запись. Но есть две особенности
а) между вызовом mysql_insert_id и mysql_query может произойти вставка новых значений и в таком случае мы не получаем последнюю вставленную запись.
б) в базе данных должно быть автоинкрементное поле id
2. Это решается так:
$query = "SEELCT MAX(имя_поля) FROM table;";
$res = mysql_query($query);
3. Это решается так:
$query = "SELECT * FROM table ORDER BY поле_сортировки DESC LIMIT 0, 10;
Данный запрос выберет 10 записей отсчитываемых с 0 и отсортированные в убывающем порядке по "полю_сортировки".
--------- Вы доставили мне истинное удовольствие парни, взвалив на меня Ваши проблемы (М. Фрай).
Ответ отправил: Козлов А. С. (статус: Студент)
Ответ отправлен: 23.10.2006, 08:05 Оценка за ответ: 5 Комментарий оценки: 1. А каким образом может произойти вставка новых значений, если этии строчки следуют одна за другой?! 2. ок, вопросов нет. 3. А можно сортировать по автоинкрементируемому полю?
Отвечает: Punk_UnDead
Здравствуйте, 1!
а первых почему вопрос в PHP
итак
1 limit -1
2 limit 1 order by
3 limit -10
4 limit n 1 (где n - случайное число от 0 до количества записей)
--------- всё испытано на себе
Ответ отправил: Punk_UnDead (статус: 2-ой класс)
Ответ отправлен: 23.10.2006, 13:12 Оценка за ответ: 5