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

Форум MySQL

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

 

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

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

тема: как записать данные из двумерного массива в базу
 
 автор: s)))   (28.04.2007 в 04:21)   письмо автору
 
 

Только начинаю разбираться с mysql.. и вот проблемка..

Есть двумерный массив $out, надо его записать в бд


//создаю таблицу
mysql_query("CREATE TABLE main (id INT NOT NULL auto_increment, number INT, category TEXT, info TEXT, key TEXT, PRIMARY KEY (id))", $msconnect);

// запись
mysql_query("INSERT INTO main VALUES ('', '$out[1][0]', $out[2][0]', '$out[3[0]', $key)", $msconnect);

// запись
mysql_query("INSERT INTO main VALUES ('', '$out[1][1]', $out[2][1]', '$out[3][1]', $key)", $msconnect);


и т.д.



подскажите, где ошибка?

Warning: mysql_query(): 3 is not a valid MySQL-Link

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

может что-то типа этого

for ($i = 1; $i <= count($out[1])-1; $i++) {
mysql_query("INSERT INTO main VALUES ('', '$out[1][$i]', $out[2][$i]', '$out[3][$i]', $key)", $msconnect);
}

но это не работает...

   
 
 автор: ШИМ   (28.04.2007 в 10:58)   письмо автору
 
   для: s)))   (28.04.2007 в 04:21)
 

Если у тебя двумерный массив, нужно обойти его 2мя циклами а потом писать в базу!
примерно так:

foreach($ar1 as $ar2)
{
       foreach($ar2 as $value)
       {
                $insert=mysql_query("INSERT INTO table VALUES($value)");
       }

}

   
 
 автор: Trianon   (28.04.2007 в 11:06)   письмо автору
 
   для: ШИМ   (28.04.2007 в 10:58)
 

И база не загнется от количества запросов?
Собственно, проблема не в этом.

   
 
 автор: Trianon   (28.04.2007 в 11:01)   письмо автору
 
   для: s)))   (28.04.2007 в 04:21)
 

Откуда берется $msconnect?

   
 
 автор: s)))   (28.04.2007 в 13:13)   письмо автору
 
   для: Trianon   (28.04.2007 в 11:01)
 

Trianon
а почему база должна загнуться от кол-ва запросов?

записать мне надо немного не так, как в том цикле, исходная таблица должна принимать вид

id INT NOT NULL auto_increment
number INT


id number $out[1][0] $out[2][0] $out[3][0] $key
id number $out[1][1] $out[2][1] $out[3][1] $key
id number $out[1][2] $out[2][2] $out[3][2] $key
id number $out[1][3] $out[2][3] $out[3][3] $key
....
id number $out[1][$i] $out[2][$i] $out[3][$i] $key


в каждом из массивов out[1], out[2], out[3] одинаковое количество элементов i

$msconnect взял из какого-то мануала, коннект к базе, но в других местах не встречал.

Кому не сложно расскажите, как записать таким образом массив в базу!

   
 
 автор: Trianon   (28.04.2007 в 16:01)   письмо автору
 
   для: s)))   (28.04.2007 в 13:13)
 

Из кода не видно, каким образом переменной $msconnect присваивается значение.
Проблема у Вас, в основном, в этом. В этой переменной почемуто лежит тройка вместо дескриптора соединения с БД. Сам запрос в целом должен работать. Как минимум на простейших строках.

   
 
 автор: s)))   (28.04.2007 в 20:32)   письмо автору
 
   для: Trianon   (28.04.2007 в 16:01)
 

спасибо, попробую без этой ненужной переменной) хых.. в статье какой-то про нее прочитал)

   
 
 автор: Trianon   (28.04.2007 в 20:48)   письмо автору
 
   для: s)))   (28.04.2007 в 20:32)
 

Если Вы присвоите ей значение, которое возвратил вызов mysql_connect(), скрипт будет только надежнее. Но совать в mysql_query переменную, содержащую мусор - бессмысленно.

   
Rambler's Top100
вверх

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