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

Форум MySQL

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

 

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

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

тема: Как забронировать id?
 
 автор: JIEXA   (04.01.2006 в 14:10)   письмо автору
 
 

Ситуация такая:
При добавлении новости на сайт, должна создаватся папка и иметь название равное id новости. А этот id не узнать пока не добавишь новость в базу данных.
1. Пользователь заходит на страницу с формой добавления новости
2. Идет запрос к БД, узнается последний занятый ID и к нему прибавляем 1.
3. "Бронируем" этот ID для этой новости, тоесть если в этот момент кто-нибудь тоже захочет добавить новость, то ему уже дадим следующий номер.(это я незнаю как реализовать)

Если кому не трудно, помогите.

   
 
 автор: cheops   (04.01.2006 в 16:24)   письмо автору
 
   для: JIEXA   (04.01.2006 в 14:10)
 

А зачем вам бронировать его. Для того, чтобы узнать значение только что вставленного автоинкрементного поля можно воспользоваться, либо функцией 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

   
 
 автор: JIEXA   (04.01.2006 в 16:50)   письмо автору
 
   для: cheops   (04.01.2006 в 16:24)
 

Дело в том, что мне нужно узнать его до того, как запись будет вставлена в БД. Перечитайте мой первый пост ещё раз, может поймете.

   
 
 автор: Евгений Петров   (04.01.2006 в 17:15)   письмо автору
 
   для: JIEXA   (04.01.2006 в 16:50)
 

А нельзя сначала добавить в базу запись, узнать id создать папку, а потом изменить эту запись в соответствии с тем, то нужно сделать?

   
 
 автор: JIEXA   (04.01.2006 в 18:00)   письмо автору
 
   для: Евгений Петров   (04.01.2006 в 17:15)
 

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

   
 
 автор: WebTech   (04.01.2006 в 18:32)   письмо автору
 
   для: JIEXA   (04.01.2006 в 18:00)
 

Зачем их бронировать? Новости могут готовить одновременно несколько пользователей, и тогда на всех бронировать id? Пусть они себе готовят новости, заполняют форму, а потом по мере поступления новостей создавать папки и назначать id. Кажется так будет правильно. Смысл этого бронирования? Наверное, пользователям, скриптам и MySQL все равно, какой у кого будет id :-), главное, чтобы новость была обработана, если она получена от пользователя. Допустим, id забронирован, а пользователь отказался отправлять новость, тогда что?

   
 
 автор: Евгений Петров   (04.01.2006 в 20:52)   письмо автору
 
   для: JIEXA   (04.01.2006 в 18:00)
 

А зачем поле, проверяйте не пусто ли поле "новости" ну или ещё какое нибудь поле. Да и что вам жалко какого то байта лишнего? :)))) На 10 000 новостей каких то 9,8 кбайт :)))

   
Rambler's Top100
вверх

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