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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Определение автоинкрементного id свежевведенного значения
 
 автор: Duran   (29.07.2005 в 12:00)   письмо автору
 
 

Ситуация такая:
Новая запись вводится на стороне пользователя, на стороне сервера после занесения новой строки нужно внести еще 2-е новые строки, причем эти записи должны содержать автонаращиваемое id введенной строки.

Поскольку пользователь вполне вероятно не один, хватать id последней записи не представляется корректным.

Решение, что называется "в лоб" - ввести новое поле (tmp_id) , в которое заносить некое случайное число. После заполнения строки, находить эту запись по tmp_id добавлять 2-е необходимые строки и стересть содержимое временного поля.
Но... это решение как-то не изящно выглядит...

   
 
 автор: cheops   (29.07.2005 в 12:33)   письмо автору
 
   для: Duran   (29.07.2005 в 12:00)
 

А нет... существуют стандартные способы, для того, чтобы узнать значение только что вставленного автоинкрементного поля. Для этого можно воспользоваться, либо функцией mysql_insert_id() в PHP, либо встроенной функцией MySQL - LAST_INSERT_ID(), примеры использования этих функций можно найти в темах по ссылкам
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=4095
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=1424

   
 
 автор: Duran   (29.07.2005 в 13:40)   письмо автору
 
   для: cheops   (29.07.2005 в 12:33)
 

Хм, функция возвращает последнее значение, которое было присвоено полю с autoincrement, а если пользователь № 2 с таким же паролем и логином сразу же после пользователя №1 произведет запись, то чей ID вернется пользователям, если его возврат предусмотрен ?

   
 
 автор: cheops   (29.07.2005 в 14:01)   письмо автору
 
   для: Duran   (29.07.2005 в 13:40)
 

Обе функции работают в рамках сеанса, т.е. другой пользователь не сможет узнать id параллельного сеанса никогда - только свой. На самом деле вы можете не беспокоится - это работает и работает хорошо, вот хотя бы на нашем форуме, когда при добавлении новой темы необходимо в запись сообщения добавить идентификатор из темы из таблицы тем.

   
Rambler's Top100
вверх

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