Автор Тема: Последняя запись в базе данных  (Прочитано 4685 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Slastik

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 101
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.sproekt.kiev.ua
Последняя запись в базе данных
« : 08 Августа 2004, 14:22:55 »
Подскажите, плз
никак не могу найти то что нужно

есть ли какая то функция в пхп, или как то можно сформировать запрос в mysql что бы, выбиралась толь ко последняя запись конкретного столбца.

тоесть у меня есть таблица, в которой всего одно поле,
например \'name\'
 в нем десять записей, так вот мне нужно вывести именно
последнюю запись.
это несложно зделать, но во всем что я придумал, приходилось, использовать какие то уловки которые тормозят скрипт,  а хотелось бы как то сразу вытянуть эту последнюю запись.

если это возможно конечно.
что то типа myaql_query("SELECT LAST name FROM table)
:)
FAQ OFF =)

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Последняя запись в базе данных
« Ответ #1 : 08 Августа 2004, 14:41:53 »
нет такого.
в базе данных нет ни первых ни последних записей.
если тебе нужно, то ты должен сам завести такое поле, по которомун находить последнюю добавленную запись, обычными средствами.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Последняя запись в базе данных
« Ответ #2 : 08 Августа 2004, 14:43:18 »
Цитировать
это несложно зделать

ты заблуждаешься.
при такой стркутуре базы это невозможно сделать.
невозможно гарантированно. то есть, тебе никто не гарантирует, что это будет именно последняя

Оффлайн Slastik

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 101
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.sproekt.kiev.ua
Последняя запись в базе данных
« Ответ #3 : 08 Августа 2004, 14:56:47 »
почему заблуждаюсь, у меня вроде получилось
например можно завести еще одно поле "id", с Auto_increment
а потом сортировать таблику по id и в обратном порядке и выбрать с limit 1

или еще проще, перебрать всю базу, в цыкле,
while ($list=mysql_fetch_array($result)) {
$temp=$list;
}
echo $temp

но вот выглядит это как то с извратом
FAQ OFF =)

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Последняя запись в базе данных
« Ответ #4 : 08 Августа 2004, 15:57:16 »
второе и является извратом. потому, что правильного результата не гарантирует. и потому, что перебирать все записи нерационально.
ты вообще понимаешь разницу между "у меня вроде получилось" и "так будет гарантированно всегда"?
Беда всех начинающих программистов в том, что они сравнивают базу данных со счетными палочками. положил кучку - взял кучу.
с таким отношением тебе база данных и не нужна вовсе. будет достаточно файла с последовательным доступом.

второе выглядит извратом только для того, кто не понимает, что такое база данных.

База данных не содержит НИКАКИХ сведений о твоих данных.
У нее есть много других забот.
поэтому те должен сам озаботиться порядком добавления, если он тебе нужен.

Оффлайн Slastik

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 101
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.sproekt.kiev.ua
Последняя запись в базе данных
« Ответ #5 : 09 Августа 2004, 14:31:21 »
:)
я ж и говорил, что изврат, но ничего лучше я придумать, не могу
вот поэтому и обратился за помощью.
хотя вариант с обратной сортировкой и выводом с лимитом 1
вроде более не меннее.
если можно зделать разумнее подскажи пожалуйста.
:)
FAQ OFF =)

Оффлайн Slastik

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 101
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.sproekt.kiev.ua
Последняя запись в базе данных
« Ответ #6 : 09 Августа 2004, 20:58:13 »
кстати я нашел такую функцию
mysql_result($result,$i,$column)
которая выводит i-тое поле столбца тоесть
если указать нужный мне столбец вместо $column(в моем случае он всего один),а вместо $i нужную запись (в моем случае она последняя, вернуть ее номер можно с помощью функции mysql_num_rows()) то все получаеться отлично
правда в мануале написано что функция mysql_result() плохая и медленная
лучше использовать mysql_fetch_array().
но по моему в моем случае добиться нужного мне результата, с помощью этой функции нельзя.
так что со всех вариантов использование mysql_result() кажеться наилучшим.
или я заблуждаюсь?
FAQ OFF =)

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Последняя запись в базе данных
« Ответ #7 : 09 Августа 2004, 22:35:12 »
Цитировать
Slastik:
хотя вариант с обратной сортировкой и выводом с лимитом 1
вроде более не меннее.
если можно зделать разумнее подскажи пожалуйста.

не надо тебе искать разумнее.
делай так.
Цитировать
Slastik:
кстати я нашел такую функцию
mysql_result($result,$i,$column)

комментировать эти глупости я не буду, как бессмысленные.

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Последняя запись в базе данных
« Ответ #8 : 10 Августа 2004, 10:30:27 »
Slastik
Цитировать
если указать нужный мне столбец вместо $column(в моем случае он всего один),а вместо $i нужную запись (в моем случае она последняя, вернуть ее номер можно с помощью функции mysql_num_rows()) то все получаеться отлично


Я плакаль... А при каком порядке состировки и какого столбца последняя строка будет действительно последней

RomikChef
[OFF]Жаль, что на запрос в yandex - "MySQL на танке", я так и не получил соответствующего результата... надо это исправить... :)[/OFF]

Оффлайн Slastik

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 101
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.sproekt.kiev.ua
Последняя запись в базе данных
« Ответ #9 : 10 Августа 2004, 14:03:48 »
2RomikChef

с сортирвкой не очень удобно, потому что при удалении записи из середины  базы ее id тоже удаляется  и получаються дырки
типа
-id------info-

1       first
2       second
4       four

тоесть если удалить третью запись, то пропадает номер три
и хотя записи всего три номер у третей 4. И потом не удобно с ними работать.
----
mysql_result:
Почему бесмысленные?, обьясни пожалуйста, мне показалось что это удачный вариант
я пока новичек, и много не знаю.

2Phoinix

Смешно наверное :(
А на yandex  нет результата, потому что у них больше, желания понять и помочь.
FAQ OFF =)

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Последняя запись в базе данных
« Ответ #10 : 10 Августа 2004, 15:03:48 »
Slastik
Цитировать
Slastik:
при удалении записи из середины базы ее id тоже удаляется и получаються дырки
...
И потом не удобно с ними работать.


И в чем неудобство?
Не все коту матрица.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Последняя запись в базе данных
« Ответ #11 : 10 Августа 2004, 16:44:00 »
ну вот раз новичок, то и делай, как тебе говорят!
ты высасываешь из пальца какие-то фантазии, вместо того, чтобы делать по-человечески, и просишь, чтобы тебя разубеждали.
с фантазиями - это к доктору.

Ты спросил, как правильно.
Тебе ответили.
Но ты упорно не желаешь делать по-человечески, постоянно придумывая какие-то идиотские отмазки, чтобы тебя уговаривали.
Ну удалил ты запись с ид 3. И ЧТО ТЕПЕРЬ - запись с номером 4 перестала быть последней добавленной???

По-моему, тебе просто дельа нечего.
Ты выдумываешь совершенно придурочные варианты и откровенно идиотские возражения - лишь бы не делать так, как тебе сказали.
по-моему, тебе просто пообщаться не с кем.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Последняя запись в базе данных
« Ответ #12 : 10 Августа 2004, 16:48:29 »
почему mysql_result - это бред.
Да потому, что ты вытаскиваешь ВСЕ записи из базы только для того, чтобы достать последнюю!
Это идиотизм!
почему-то в реальной жизни человек никогда не будет доставать из холодильника все продукты, если ему нужна только колбаса.
Но как только он садится программировать, то тут же куда-то все навыки житейские испаряются из его головы.

Если тебе нужна последняя, то ЧТО МОЖЕТ БЫТЬ ПРОЩЕ, чем
1. ввести систему маркировки.
2. доставать сразу последнюю.

Нет, мы будем трахать мозг себе и другим, мы пойдем другим путем и хть треснем, но сделаем навыворот.
молодец.
Далеко пойдешь.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Последняя запись в базе данных
« Ответ #13 : 10 Августа 2004, 16:50:27 »
Цитировать
Slastik:
потому что у них больше, желания понять и помочь.

Знаешь что, милый мальчик.
Вот что я больше всего не люблю - это вот такие заявы.
И ты хочешь сказать, что тебе не помогли?
Не сказали, как правильно?
Увели, хочешь сказать, в сторону?
Глупостей наговорили?
Ты это хочешь сказать?

Оффлайн Slastik

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 101
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.sproekt.kiev.ua
Последняя запись в базе данных
« Ответ #14 : 10 Августа 2004, 21:36:53 »
2RomikChef
Цитировать
Вот что я больше всего не люблю - это вот такие заявы.


Ты меня не правильно понял, я это написал Phoinix  в ответ на его высказывание о танке.
а тебе я очень благодарен, за помощь.

Пообщатся мне тоже есть с кем.

Вообщем зделаю так как ты сказал.
ты меня убедил :)
FAQ OFF =)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28