Автор Тема: последняя строка в табл  (Прочитано 6510 раз)

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

Оффлайн cosss

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 44
  • +0/-0
  • 0
    • Просмотр профиля
    • http://tochka-ru.com
последняя строка в табл
« : 31 Января 2004, 09:52:51 »
как мне до нее добраться, пробовал mysql_insert_id()
но видно это совсем не то что надо... всегда 0 возвращает...
ЖЖ

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
последняя строка в табл
« Ответ #1 : 31 Января 2004, 14:42:57 »
cosss
учи теорию. Таблица это множество записей, а множества по определению неупорядочены. То есть в таблице нет первой, второй, последней записи.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
последняя строка в табл
« Ответ #2 : 31 Января 2004, 16:17:17 »
А чтобы упорядочить это множество, надо почитать про оператор ORDER BY в официальной документации.

PS: Размещения одинаковых сообщений в разных разделах форума - это кросспостинг. А кросспостинг запрещен на всех цивилизованных форумах, в том числе и на этом.
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн cosss

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 44
  • +0/-0
  • 0
    • Просмотр профиля
    • http://tochka-ru.com
последняя строка в табл
« Ответ #3 : 31 Января 2004, 18:29:27 »
FreeSpace
За кросспостинг извиняюсь, как сортировать табл. я знаю... Мне надо достать последнюю строку в таблице. Последнюю, в смысле при последнем INSERT запросе.
ЖЖ

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
последняя строка в табл
« Ответ #4 : 31 Января 2004, 20:09:17 »
cosss
В таком случае, нужно было завдавать вопрос "Как достать последнюю добавленную в таблицу запись?".
Тебе может помочь только mysql_insert_id и то при условии, что эта функция вызывается сразу после того, как был выполнен запрос INSERT.
Цитировать
Цитата из мана:
mysql_insert_id() returns 0 if the previous query does not generate an AUTO_INCREMENT value. If you need to save the value for later, be sure to call mysql_insert_id() immediately after the query that generates the value.

Если же ты хочешь просто так, без всяких инсертов, взять и узнать, какая запись была добавлена последней, то ИМХО это невозможно.
Выход в таком случае простой - изменить структуру базы данных.
Добавить например поле timestamp, в котором хранить время добавления записи, а потом получать последнюю запись так:
SELECT * FROM table ORDER BY timestamp DESC LIMIT 1
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн cosss

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 44
  • +0/-0
  • 0
    • Просмотр профиля
    • http://tochka-ru.com
последняя строка в табл
« Ответ #5 : 31 Января 2004, 20:19:46 »
Чьерт побьери, это не входило в мои планы... Хотя с этой штукой у меня даже код уменьшится, пасиб.
ЖЖ

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
последняя строка в табл
« Ответ #6 : 31 Января 2004, 20:49:27 »
вообще-то timestamp обновляется и при редактировании записи.
Так что могут быть баги, если записи редактируются
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
последняя строка в табл
« Ответ #7 : 31 Января 2004, 23:10:21 »
Прошу прощения за неточность, я имел в виду не тип поля, его имя. Тип - INT.
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн cosss

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 44
  • +0/-0
  • 0
    • Просмотр профиля
    • http://tochka-ru.com
последняя строка в табл
« Ответ #8 : 01 Февраля 2004, 01:12:59 »
Балин, че-то я туплю... Это ж ведь новости... Последняя по дате новость и будет та последняя которая мне нужна... Просто обратная сортировка по дате и LIMIT 1
ЖЖ

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

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
последняя строка в табл
« Ответ #9 : 01 Февраля 2004, 10:28:57 »
всегда приятно, когда человек уходит с форума с правильным ответом и умножившимися знаниями.
при этом он не очень кочевряжится и настаивает на ответе именно в своей формулировке.
И при этом не находятся чудики, не будем показывать пальцем - кто, которые начинают отвечать на неправильный вопрос, вместо того, чтобы объяснить человеку, в чем он неправ и как сделать правильно.

cosss, чисто уточнить.
Ты до конца понял смый первый ответ Макса?
Что в базе нет первых и последних записей?

И что в случае новостей их надо сортировать именно по дате, а не по айди?

Оффлайн cosss

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 44
  • +0/-0
  • 0
    • Просмотр профиля
    • http://tochka-ru.com
последняя строка в табл
« Ответ #10 : 04 Февраля 2004, 10:15:30 »
RomikChef
Да, я заметил как-то, что строки в таблице совсем не отсортированы, или отсортированы так как хочет мускуль. Но вот я задумался, а если я зохочу редактировать последнюю вообще затронутую хоть как-то запись, будь то UPDATE или INSERT, неужели это невозможно?
ЖЖ

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

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
последняя строка в табл
« Ответ #11 : 04 Февраля 2004, 11:46:59 »
нет.
все критерии соритровки ты должен задавать сам.
принципиально ведь последняя добавленная не отличается от записи с самым большим числом в поле зарплата.
есть поле, по которому можно отсортировать - имеешь доступ.
непозаботился о таком поле - никаких "первых" и "последних"

Оффлайн cosss

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 44
  • +0/-0
  • 0
    • Просмотр профиля
    • http://tochka-ru.com
последняя строка в табл
« Ответ #12 : 04 Февраля 2004, 12:47:42 »
А таймстамп меняется при UPDATE? Сорри не могу щас проверить.
ЖЖ

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

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
последняя строка в табл
« Ответ #13 : 04 Февраля 2004, 13:13:11 »
сорри - это ты праввильно написал ;-)
меняется
но когда сможешь - обязательно почитай.

вкратце - таймстамп надо использовать ТОЛЬКО как меркер именно изменения записи. а не маркер создания записи или для хранения времени.

Оффлайн it4all

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 68
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.it4all.h10.ru
Это снова я с тупыми вопросами
« Ответ #14 : 04 Февраля 2004, 19:02:05 »
Я залез на этот топик,с единственной целью - спросить
можно ли мне еще задавать несколько вопросов сообществу этого форума? Если да то как,это зделать,
воспользоватся чужой темой или заново создать новую.

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

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

 

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