Есть таблица товаров и таблица фотографий. Ну скажем: товары (id_tovar, name_tovar, id_photos) и фотографии (id_photo, photo_path). в id_photos по задумке должны храниться id'шники фотографий (как я понял, тип данных SET) Подскажите, если у меня есть форма добавления товара и в ней некоторое количество инпутов типа файл. То как грамотно делать insert в две таблицы, при том, что фоток может быть несколько. Пробовал с last_insert_id, но что-то беда (( направьте плз p.s.: и еще в таблице фото я правильно не храню id_tovar или все-таки нет?
id товара в таблице с фотографиями хранить нужно, иначе как ты узнаешь, к какому товару относится та или иная фотография? Сперва вставляешь запись в таблицу с товарами, потом с помощью mysql_insert_id() (если используешь mysql_* функции, для mysqli_* есть такая же) получаешь id добавленной записи, сохраняешь фотографии и вставляешь записи о них в таблицу с фотографиями, указав также id товара.
я решил сделать таблицы так: товары (id_tovar, name_tovar), фото (id_photo, photo_path, id_tovar) получилось взять insert_id при добавлении одной фотографии. Но не понятен принцип добавления нескольких фотографий. Либо когда просто несколько инпутов, либо, как на avito например. Т.е. мы добавляем фото, оно видимо сохраняется _> появляется сама картинка в форме, ..а мы можем добавить еще. Вопрос: что использовать надо? js, или хватит php и sql? Может нужно делать форму в форме (но вроде это не валидно)....?
Код (Text): $query = "SET AUTOCOMMIT=0; START TRANSACTION; INSERT INTO tovar VALUES (NULL, ".$_POST['id_tovar'].", '".$_POST['name_tovar']."'); SET @lastID := last_insert_id(); INSERT INTO photo VALUES (NULL, '".$_POST['photo_path']."', @lastID); COMMIT"; if (mysql_query($query)) {....тра-тата.. } Я что-то не то делаю) , попробовал по примерам похожее, но выдает ошибку синтаксиса: You have an error in your SQL syntax; check the manual .... вобщем в пхпадмине работает, а здесь нет ( Код (Text): INSERT INTO tovar VALUES (NULL, 'first');INSERT INTO photo VALUES (NULL, 'тарам-парам', last_insert_id()) вобщем сделал так, вроде работает (правда пока без транзацкций): Код (Text): $query = "INSERT INTO tovar VALUES (NULL, '".$_POST['id_tovar']."', ".$_POST['name_tovar'].")"; $query2 = "INSERT INTO photo VALUES (NULL, ' ".$_POST['photo_path']." ', last_insert_id())"; if (mysql_query($query) and mysql_query($query2)) {....тра-тата.. }