Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Вывод последней записи

Сообщения:  [1-10]   [11-14] 

 
 автор: zloi_burgui   (08.02.2007 в 18:13)   письмо автору
 
   для: zloi_burgui   (06.02.2007 в 14:46)
 

Все заработало. Всем спасибо кто что-то подсказал.
Будете проезжать через мой город с меня пивооо :-)))
Спасибо Роман

   
 
 автор: zloi_burgui   (06.02.2007 в 14:46)   письмо автору
 
   для: Trianon   (06.02.2007 в 12:09)
 

Да согласен сглупил с ID это аутоинкрементное поле. Уберу его с кода. Спасибо за замечания.

   
 
 автор: Loki   (06.02.2007 в 12:57)   письмо автору
 
   для: ZuArt   (06.02.2007 в 12:43)
 

Нам неизвестно, является ли поле id автоинкрементным.
Если да, то код $id=$_POST['id'] будут неверен, а если нет, то код $id=mysql_insert_id();

   
 
 автор: ZuArt   (06.02.2007 в 12:43)   письмо автору
 
   для: Loki   (06.02.2007 в 12:33)
 

Вы глубоко ошибаетесь =) если смотреть на вышеуказанный код, то видно, что поле id является "сортировщиком", а по виду формы - уникальным кодом (идентификатором записи)...

Если я при вводе не могу различить, что написано на бумажке в строке с id=13 (ну плохой почерк или чернила потекли) я пропущу эту запись... впоследствии, заполнив эдак 5000 записей я наконец вспомню про 13 запись и введу ее... по сортирвке мне выдастся строка 5000, а не 13 - это во-первых...
а во-вторых, сортировка будет просматривать 5000 записей, для того, чтобы вывести строку 5000-ую в соответствии с сортировкой, причем неправильную =)... а поиск остановится на 13-ой записи, если поле в БД указано как уникальное, а если нет, то надо лимит в одну запись поставить, чтобы просмотр БД прекратился на 13 записи... и тут уж скажем прямо - индексировано поле или нет - суть не меняется просмотр 13 записей происходит быстрее, чем просмотр и сортировка 5000 записей.

а вот mysql_insert_id() - как раз и дает значение УНИКАЛЬНОГО поля последней записи, внесенной по insert - отсюда и возьму уникальное id, по которому выстрою условие - на то и голова, чтобы знать как эта функция работает =)))

   
 
 автор: Loki   (06.02.2007 в 12:33)   письмо автору
 
   для: ZuArt   (06.02.2007 в 11:51)
 

Если поле проиндексировано, а это как правило именно так, то разницы вы не заметите. Кроме того, условие - это хорошо, вот только откуда вы его планируете взять? из головы? тут как раз и стоит задача найти последнюю строку, а вы, в качестве решения, предлагаете в запросе использовать номер, который этим запросом и предстоит найти.
а mysql_insert_id() это вообще из другой оперы.

   
 
 автор: ZuArt   (06.02.2007 в 12:11)   письмо автору
 
   для: zloi_burgui   (06.02.2007 в 12:06)
 

нзчт ;)
что смогу - подскажу

   
 
 автор: Trianon   (06.02.2007 в 12:09)   письмо автору
 
   для: zloi_burgui   (06.02.2007 в 11:37)
 

А что передается в $_POST['id'] ?
Здесь напрашивается автоматическая генерация первичного ключа.

   
 
 автор: zloi_burgui   (06.02.2007 в 12:06)   письмо автору
 
   для: ZuArt   (06.02.2007 в 11:51)
 

Спасибо за совет.

   
 
 автор: ZuArt   (06.02.2007 в 11:51)   письмо автору
 
   для: Loki   (06.02.2007 в 11:42)
 

А вообще - так нехорошо делать =))) указание сортировки заставляет базу просматривать все записи и отсортировать их - лишняя трата времени и ресурсов сервака - лучше делать получение данных запросом с условием "select * from $table where id=".$id...

а перед этим $id = $_POST['id'] если идентификатор получаем от формы - что нехорошо и неправильно... т.к. может быть такое, что получим один id от двух форм...

или
$id = mysql_insert_id(); если есть автоинкрементное поле (если у него просто другое имя, отличное от "id", то поправить запрос на получение "select ..." - указать его в условии)...

И кстать, если id все-таки передается из формы (как КОД записи), то сортировкой ты не выведешь последнюю ВВЕДЕННУЮ запись, если ввести код меньше, чем уже есть в базе =)))... так что юзай условие, а не сортировку - надежнее ;).

   
 
 автор: zloi_burgui   (06.02.2007 в 11:50)   письмо автору
 
   для: Loki   (06.02.2007 в 11:42)
 

Спасибо. Использую Ваш совет.

   

Сообщения:  [1-10]   [11-14] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования