Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавление в таблицу сразу не сколько строк. 
:(
    Опции темы
Igor_CH
Дата 5.6.2006, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет




Подскажите как добавить в таблицу сразу несколько строк, т.е.:

делаю 
1. соединяюсь с базой
2. заполняю ячейки (их может быть сколько угодно)
Код

<input type="text" id="foto_1" name="foto_1">
<input type="text" id="foto_2" name="foto_2">
………

3. как записать каждую ячейку в свою строку в таблице.

Таблица из двух ячеек ID и FOTO.
 
PM MAIL   Вверх
skyboy
Дата 5.6.2006, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Код

INSERT INTO table(photo) VALUES(<photo1>),(<photo2>),(<photo3>)...

Где <photoX> - очередное фото. 
PM MAIL   Вверх
Igor_CH
Дата 5.6.2006, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



Так записывается в одну строку в разные ячейки, а мне нужно чтоб запись была:
ID   PHOTO
1     1.jpg
2      me.jpg
3      sdfsg.jpg
.......


и опять таки не известно сколько будет фото. 
PM MAIL   Вверх
skyboy
Дата 5.6.2006, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



одну строку в разные ячейки записывают так:
Код

INSERT INTO Table(field1,field2,field3,field4) VALUES(<value1>,<value2>,<value3>,<value4>)

Обрати внимание на количество перечисленных полей после "INTO Table" и количество скобок после "VALUES"
А то, что я предложил пост назад, как раз и записывает несколько строк.

Добавлено @ 17:29 
когда ты будешь формировать запрос, ты ведь будешь уже точно знать количество фотографий, потому тебе ничто не помешает формировать запрос в цикле. 
PM MAIL   Вверх
Igor_CH
Дата 5.6.2006, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



Вот так я делаю:
Код

$foto_name_1 =$_POST["foto_1"];
$foto_name_2 =$_POST["foto_2"];
        
$text_1 =$_POST["text_1"];
$text_2 =$_POST["text_2"];

$sql_insert = "INSERT INTO photo (foto_name, text) VALUES  ( ($foto_name_1,$text_1), ($foto_name_2,$text_1) );";



Ошибка: Operand should contain 1 column(s) INSERT INTO photo (foto_name, text) VALUES ( ('1.jpg','text1'), ('2.jpg','text2') ); 
PM MAIL   Вверх
ASteel
Дата 5.6.2006, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 24.5.2006
Где: Krasnodar, Russia

Репутация: нет
Всего: 1



А я бы сделал так:
Код

$foto_name_1 =$_POST["foto_1"];
$foto_name_2 =$_POST["foto_2"];
        
$text_1 =$_POST["text_1"];
$text_2 =$_POST["text_2"];

$sql_insert = "INSERT INTO photo (foto_name, text) VALUES ('$foto_name_1','$text_1'), ('$foto_name_2','$text_1')";


Обрати внимание на скобки! 
PM MAIL WWW   Вверх
skyboy
Дата 5.6.2006, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Igor_CH, а зачем после "VALUES" ты ещё одними скобками оборачиваешь вводимые данные? 
Попробуй так:
Код

$sql_insert = "INSERT INTO photo (foto_name, text) VALUES  (".$foto_name_1.",".$text_1."), (".$foto_name_2.",".$text_1.");"
 
PM MAIL   Вверх
Igor_CH
Дата 5.6.2006, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



Большое спасибо!!! Все работает smile 
PM MAIL   Вверх
Igor_CH
Дата 5.6.2006, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



Продолжение начатого, чтоб не начинать новую тему. 
Подскажите как правильно сделать.

Есть форма, разобьем ее на две части:

1 часть -----------------
Название <input type=text name=nazvanie>
Описание <input type=text name=opisanie>

Данные записываются в таблицу KAT
Таблица “KAT” для этой части выглядит так:
ID  |  NAZVANIE  |  OPISANIE  |  DATA


2 часть ----------------
Фото 1     Описание для фото 1
Фото 2     Описание для фото 2
………………………………….
Фото N     Описание для фото N

Данные записываются в таблицу PHOTO
Таблица “PHOTO” для этой части выглядит так:
ID  |  FOTO  |  TEXT  |  ID_KAT (id с таблицы KAT)


Так вот как лучше получить (записать) ID_KAT? 
Получать последний auto_increment с таблицы PHOTO или записывать ID_KAT как дату с таблицы KAT.
 
PM MAIL   Вверх
skyboy
Дата 5.6.2006, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Не совсем понятно, что ты хочешь сделать. Хорошо, хоть структуру описал. А вообще-то, одна тема - один вопрос 
PM MAIL   Вверх
Serkys
Дата 5.6.2006, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 1
Всего: 22



Цитата(Igor_CH @  5.6.2006,  19:36 Найти цитируемый пост)
Получать последний auto_increment с таблицы PHOTO или записывать ID_KAT как дату с таблицы KAT.

Ни в коем случае! В перерывах между записью и вычерпыванием последнего авто_инкремента может быть добавлена ещё одна запись.
Вычерпывай, проставляя в where название, описание (желательно все сразу).
Код

mysql_query ("SELECT * FROM `KAT` WHERE `nazvanie` = '" . $nazvanie . "' AND `opisanie` = '" . $opisanie . "'");


З.Ы. Твои переменные выговаривать - пальцы сломаешь! smile  
PM MAIL   Вверх
skyboy
Дата 5.6.2006, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Serkys, может, мне показалось, но мне функия last_insert_id() возвращает автоинкремент вставленный именно мной(как сессией подключения). Может, показалось? 
PM MAIL   Вверх
Serkys
Дата 5.6.2006, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 1
Всего: 22



skyboy, без понятия. Я в дебри мускула не лазил. 
PM MAIL   Вверх
skyboy
Дата 5.6.2006, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Serkys, я тоже не лазил. Я испытания проводил. Только там лажа с этой функцией. От версии к версии она то работает стабильно, то вовсе не работает. По крайней мере, в моих руках... smile
Потому -  пользоваться ею нельзя.  
PM MAIL   Вверх
ASteel
Дата 6.6.2006, 08:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 24.5.2006
Где: Krasnodar, Russia

Репутация: нет
Всего: 1



Цитата(Igor_CH @  5.6.2006,  18:36 Найти цитируемый пост)
Так вот как лучше получить (записать) ID_KAT? 
Получать последний auto_increment с таблицы PHOTO или записывать ID_KAT как дату с таблицы KAT.


Лучше всего, не использовать autoincrement а делать что-то типа:
Код

SELECT max(id)+1 AS `key` FROM some_table
-- сэмулировать такую штуку как sequence
-- под some_table в данном случае понимать KAT


И потом этот key использовать и в 1-ом запросе и во втором.
А last_insert_id() действительно крайне нестабильна.   

Это сообщение отредактировал(а) ASteel - 6.6.2006, 08:28
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0844 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.