Как получить значение поля, если оно auto_increment

disaster

Новичок
Как получить значение поля, если оно auto_increment

Здравствуйте!
У меня трабла:
Есть непустая таблица, а в ней поля:

`news_id` int(10) unsigned NOT NULL auto_increment,
PRIMARY KEY (`news_id`)

и поле

`pic_file_name` varchar(100) NOT NULL default ' ',

Значения pic_file_name, зависит от 'news_id'. Например если 'news_id'=1024, то значение 'pic_file_name'=1024_плюс_что_то_не_зависящее_от_news_id.

Вопрос: как правильно сформировать INSERT, чтобы значение 'pic_file_name' правильно задавалось?
 

Crazy

Developer
Правильный ответ: не хранить news_id в первых символах поля pic_file_name, раз уж они все равно совпадают.
 

tf

крылья рулят
ДЖлвар
disaster
если тебе необходимо хранить уникальные файлы в фс с изначальными возм одинаковыми именами (что_то_не_зависящее_от_news_id) rand(что_то_не_зависящее_от_news_id) и если есть то сново и сново rand(что_то_не_зависящее_от_news_id)
(это кон я загнул - подходит если к одному id много file)

а лучше делай две вставки для второй используй id=mysql_insert_id. ихмо остальное что приходи в голову бред
 

disaster

Новичок
Окей, сделал так как сказал Crazy. Возникает другой вопрос: допустим каждой новости(строке в таблице в БД) соответствует один файл с картинкой, при закачке картинки файл именуется "номер_новости".jpg или "номер_новости".gif
Поле номер_новости имеет атрибут auto_increment, поэтому при добавлении новости надо знать какой номер она получит, чтобы правильно назвать файл. На ум приходит следующее: после вставки новости сделать запрос выбрать максимальный номер_новости, типа он и будет соответствовать последней добавленной новости. Является ли решение правильным? Есть ли другие варианты?
 

regi

Новичок
После вставки записи mysql вернет число, вставленное в auto increment поле. $insert_id = mysql_insert_id();
 

Фанат

oncle terrible
Команда форума
id - это НЕ НОМЕР. постарайся просто запомнить, если не можешь понять.
после вставки новости база тебе id сама скажет
mysql_insert_id()
 
Сверху