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

Форум MySQL

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

 

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

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

тема: Автозаполнение id
 
 автор: Freddie_X   (21.01.2008 в 13:54)   письмо автору
 
 

Как через PHP сделать скрипт, который послылает к MySQL запрос такого вида:
mysql_query('INSERT INTO table_name VALUES (id,\'Vasya\',\'Pupkin\');

И чтобы вместо id писалось число на 1 большее, чем в предыдущей записи, а если записей нет, то писать 0.
Сам я запутался и не знаю как сделать...

   
 
 автор: DJ Paltus   (21.01.2008 в 14:00)   письмо автору
 
   для: Freddie_X   (21.01.2008 в 13:54)
 

для этого достаточно в базе указать для поля id свойство auto_increment, тогда в запросе просто пустые кавычки на это поле ставить, мускуль сам увеличит.
mysql_query("INSERT INTO table_name VALUES ('','Vasya','Pupkin')");

   
 
 автор: olejek   (21.01.2008 в 14:09)   письмо автору
 
   для: Freddie_X   (21.01.2008 в 13:54)
 

а если записей нет, то писать 0
А смысл тогда вставлять такую запись?

   
 
 автор: Freddie_X   (21.01.2008 в 14:37)   письмо автору
 
   для: olejek   (21.01.2008 в 14:09)
 

Ну просто хочу чтобы первая запись была с id=0, а потом уже id=1, id=2 и т.д.
для этого достаточно в базе указать для поля id свойство auto_increment, тогда в запросе просто пустые кавычки на это поле ставить, мускуль сам увеличит.
mysql_query(\"INSERT INTO table_name VALUES (\'\',\'Vasya\',\'Pupkin\')\");

Этот способ работает, но почему-то первое значение не 0, а 1.
ну или как вариант - достать максимальное значение id из базы запросом \"select max(id) from table_name as maxid;\"
и переменную maxid использовать в свое удовольствие.

Что-то не пойму, в какую переменную записывает максимальный id? $maxid пустая.

   
 
 автор: DJ Paltus   (21.01.2008 в 14:43)   письмо автору
 
   для: Freddie_X   (21.01.2008 в 14:37)
 

ну потому что maxid нужно из mysql_fetch_array доставать как обычно

   
 
 автор: olejek   (21.01.2008 в 14:48)   письмо автору
 
   для: Freddie_X   (21.01.2008 в 14:37)
 

А зачем Вам нужна первая запись со значением "0"?
Используйте auto_increment и не морочьте голову.
А если все-таки ну ни как нельзя без этого нуля, то опишите Вашу задачу, может, можно найти другой вариант

   
 
 автор: Freddie_X   (21.01.2008 в 14:51)   письмо автору
 
   для: olejek   (21.01.2008 в 14:48)
 

В принципе, не зачем. Просто было интересно знать, как это делается.
Всем спасибо за помощь! )

   
 
 автор: Freddie_X   (21.01.2008 в 15:44)   письмо автору
 
   для: Freddie_X   (21.01.2008 в 14:51)
 

А что значит ошибка Out of range value adjusted for column 'id' at row 1? Вылетает почему-то.

   
 
 автор: DJ Paltus   (21.01.2008 в 16:05)   письмо автору
 
   для: Freddie_X   (21.01.2008 в 15:44)
 

например, если у тебя стоит свойство not null, а ты пытаешься в графу 0 записать...
имхо

   
 
 автор: olejek   (21.01.2008 в 16:13)   письмо автору
 
   для: DJ Paltus   (21.01.2008 в 16:05)
 

Да нет, тогда будет такая ошибка:
#1048 - Column 'id' cannot be null

   
 
 автор: olejek   (21.01.2008 в 16:08)   письмо автору
 
   для: Freddie_X   (21.01.2008 в 15:44)
 

Если Вы понимаете английский, почитайте:
http://webomania.wordpress.com/2006/10/01/out-of-range-value-adjusted-for-column-error/

   
 
 автор: Freddie_X   (21.01.2008 в 17:36)   письмо автору
 
   для: olejek   (21.01.2008 в 16:08)
 

olejek, спасибо, вроде помогло!

   
Rambler's Top100
вверх

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