Задавайте вопросы, мы ответим
Вы не зашли.
Доброго времени!
Я прошу прощения за свои дилетантские вопросы, собственно на которых и учусь.
Не могли бы вы подсказать как можно извлечь последнюю запись из таблицы? я пользуюсь вот такой конструкцией:
$result =mysql_query("SELECT * FROM newraz"); while ($myrow = mysql_fetch_array ($result)) { printf("
Но видимо не знаю или совсем забыла по глупости как из этой же таблицы (newraz), в которой содержится много записей, извлечь последнюю? или может быть нужно для этого использовать другую конструкцию, а не данную, что мне очень привычна.
Огромное спасибо заранее!
Неактивен
В запросе SELECT * FROM newraz строки будут выдаваться вообще говоря в
произвольном порядке. Для того, чтобы был порядок, нужно указывать это
явно (например, ORDER BY id). Тогда можно вытаскивать первую строку при
сортировке в обратном порядке:
SELECT * FROM newraz ORDER BY id DESC LIMIT 1;
Ну и в приложении лучше делать SELECT field1,…,fieldN, а не SELECT *.
Неактивен
paulus, спасибо огромное что откликнулись!
Но я не очень поняла, честно говоря.
То есть мне в самой таблице надо сделать ещё один столбец id ? Сейчас у меня выводятся все записи в порядке от самой старой до самой свежей сверху вниз.
пока что SELECT * FROM newraz ORDER BY id DESC LIMIT 1; у меня не работает, пишет ошибку.
А в приложении это где? в таблице? или коде страницы?
Простите за такое количество вопросов
Отредактированно Blondy (11.06.2010 16:38:24)
Неактивен
Ну, у Вас в таблице есть же какой-то столбец, по которому Вы сортируете?
Нельзя надеяться на то, что записи будут выдаваться в порядке добавления:
[celestia] root test > create table testinsert (f int) engine=myisam; Query OK, 0 rows affected (0.07 sec) [celestia] root test > insert into testinsert values (1), (2), (3); Query OK, 3 rows affected (0.00 sec) Records: 3 Duplicates: 0 Warnings: 0 [celestia] root test > delete from testinsert where f = 2; Query OK, 1 row affected (0.00 sec) [celestia] root test > insert into testinsert values (4); Query OK, 1 row affected (0.00 sec) [celestia] root test > select * from testinsert; +------+ | f | +------+ | 1 | | 4 | | 3 | +------+ 3 rows in set (0.00 sec)
В данном случае запись 4 добавлена была последней, а вывелась второй.
Для того, чтобы данные выводились в нужном порядке, должна быть колонка,
которая бы характеризовала этот порядок (или id, или время добавления), и по
которой можно было бы сортировать.
Неактивен
Спасибо вам! теперь поняла) Простите новичка неопытного, у которого ум за разум заходит.
Теперь всё получилось!
Неактивен