Forum Webscript.Ru
Программирование => PHP => Тема начата: Slastik от 08 Августа 2004, 14:22:55
-
Подскажите, плз
никак не могу найти то что нужно
есть ли какая то функция в пхп, или как то можно сформировать запрос в mysql что бы, выбиралась толь ко последняя запись конкретного столбца.
тоесть у меня есть таблица, в которой всего одно поле,
например \'name\'
в нем десять записей, так вот мне нужно вывести именно
последнюю запись.
это несложно зделать, но во всем что я придумал, приходилось, использовать какие то уловки которые тормозят скрипт, а хотелось бы как то сразу вытянуть эту последнюю запись.
если это возможно конечно.
что то типа myaql_query("SELECT LAST name FROM table)
:)
-
нет такого.
в базе данных нет ни первых ни последних записей.
если тебе нужно, то ты должен сам завести такое поле, по которомун находить последнюю добавленную запись, обычными средствами.
-
это несложно зделать
ты заблуждаешься.
при такой стркутуре базы это невозможно сделать.
невозможно гарантированно. то есть, тебе никто не гарантирует, что это будет именно последняя
-
почему заблуждаюсь, у меня вроде получилось
например можно завести еще одно поле "id", с Auto_increment
а потом сортировать таблику по id и в обратном порядке и выбрать с limit 1
или еще проще, перебрать всю базу, в цыкле,
while ($list=mysql_fetch_array($result)) {
$temp=$list;
}
echo $temp
но вот выглядит это как то с извратом
-
второе и является извратом. потому, что правильного результата не гарантирует. и потому, что перебирать все записи нерационально.
ты вообще понимаешь разницу между "у меня вроде получилось" и "так будет гарантированно всегда"?
Беда всех начинающих программистов в том, что они сравнивают базу данных со счетными палочками. положил кучку - взял кучу.
с таким отношением тебе база данных и не нужна вовсе. будет достаточно файла с последовательным доступом.
второе выглядит извратом только для того, кто не понимает, что такое база данных.
База данных не содержит НИКАКИХ сведений о твоих данных.
У нее есть много других забот.
поэтому те должен сам озаботиться порядком добавления, если он тебе нужен.
-
:)
я ж и говорил, что изврат, но ничего лучше я придумать, не могу
вот поэтому и обратился за помощью.
хотя вариант с обратной сортировкой и выводом с лимитом 1
вроде более не меннее.
если можно зделать разумнее подскажи пожалуйста.
:)
-
кстати я нашел такую функцию
mysql_result($result,$i,$column)
которая выводит i-тое поле столбца тоесть
если указать нужный мне столбец вместо $column(в моем случае он всего один),а вместо $i нужную запись (в моем случае она последняя, вернуть ее номер можно с помощью функции mysql_num_rows()) то все получаеться отлично
правда в мануале написано что функция mysql_result() плохая и медленная
лучше использовать mysql_fetch_array().
но по моему в моем случае добиться нужного мне результата, с помощью этой функции нельзя.
так что со всех вариантов использование mysql_result() кажеться наилучшим.
или я заблуждаюсь?
-
Slastik:
хотя вариант с обратной сортировкой и выводом с лимитом 1
вроде более не меннее.
если можно зделать разумнее подскажи пожалуйста.
не надо тебе искать разумнее.
делай так.
Slastik:
кстати я нашел такую функцию
mysql_result($result,$i,$column)
комментировать эти глупости я не буду, как бессмысленные.
-
Slastik
если указать нужный мне столбец вместо $column(в моем случае он всего один),а вместо $i нужную запись (в моем случае она последняя, вернуть ее номер можно с помощью функции mysql_num_rows()) то все получаеться отлично
Я плакаль... А при каком порядке состировки и какого столбца последняя строка будет действительно последней
RomikChef
[OFF]Жаль, что на запрос в yandex - "MySQL на танке", я так и не получил соответствующего результата... надо это исправить... :)[/OFF]
-
2RomikChef
с сортирвкой не очень удобно, потому что при удалении записи из середины базы ее id тоже удаляется и получаються дырки
типа
-id------info-
1 first
2 second
4 four
тоесть если удалить третью запись, то пропадает номер три
и хотя записи всего три номер у третей 4. И потом не удобно с ними работать.
----
mysql_result:
Почему бесмысленные?, обьясни пожалуйста, мне показалось что это удачный вариант
я пока новичек, и много не знаю.
2Phoinix
Смешно наверное :(
А на yandex нет результата, потому что у них больше, желания понять и помочь.
-
Slastik
Slastik:
при удалении записи из середины базы ее id тоже удаляется и получаються дырки
...
И потом не удобно с ними работать.
И в чем неудобство?
-
ну вот раз новичок, то и делай, как тебе говорят!
ты высасываешь из пальца какие-то фантазии, вместо того, чтобы делать по-человечески, и просишь, чтобы тебя разубеждали.
с фантазиями - это к доктору.
Ты спросил, как правильно.
Тебе ответили.
Но ты упорно не желаешь делать по-человечески, постоянно придумывая какие-то идиотские отмазки, чтобы тебя уговаривали.
Ну удалил ты запись с ид 3. И ЧТО ТЕПЕРЬ - запись с номером 4 перестала быть последней добавленной???
По-моему, тебе просто дельа нечего.
Ты выдумываешь совершенно придурочные варианты и откровенно идиотские возражения - лишь бы не делать так, как тебе сказали.
по-моему, тебе просто пообщаться не с кем.
-
почему mysql_result - это бред.
Да потому, что ты вытаскиваешь ВСЕ записи из базы только для того, чтобы достать последнюю!
Это идиотизм!
почему-то в реальной жизни человек никогда не будет доставать из холодильника все продукты, если ему нужна только колбаса.
Но как только он садится программировать, то тут же куда-то все навыки житейские испаряются из его головы.
Если тебе нужна последняя, то ЧТО МОЖЕТ БЫТЬ ПРОЩЕ, чем
1. ввести систему маркировки.
2. доставать сразу последнюю.
Нет, мы будем трахать мозг себе и другим, мы пойдем другим путем и хть треснем, но сделаем навыворот.
молодец.
Далеко пойдешь.
-
Slastik:
потому что у них больше, желания понять и помочь.
Знаешь что, милый мальчик.
Вот что я больше всего не люблю - это вот такие заявы.
И ты хочешь сказать, что тебе не помогли?
Не сказали, как правильно?
Увели, хочешь сказать, в сторону?
Глупостей наговорили?
Ты это хочешь сказать?
-
2RomikChef
Вот что я больше всего не люблю - это вот такие заявы.
Ты меня не правильно понял, я это написал Phoinix в ответ на его высказывание о танке.
а тебе я очень благодарен, за помощь.
Пообщатся мне тоже есть с кем.
Вообщем зделаю так как ты сказал.
ты меня убедил :)