|
|
|
| Может вопрос кому-то глупым покажеться, простите.
Не могу правильно разоборать такой массив:
Array ( [0] => Array ( [NAME] => Техническая поддержка Photoshop 4 [ID] => 139 [AUTHOR] => Кен Ойер [PUBLISH] => Комиздат [YEAR] => 1998 [types] => Array ( [0] => Графика и дизайн ) ) [1] => Array ( [NAME] => Мир Corel Draw! [ID] => 112 [AUTHOR] => Михаэль Оссвальд [PUBLISH] => BHV [YEAR] => 1995 [types] => Array ( [0] => Графика и дизайн ) ) [2] => Array ( [NAME] => Внутренний мир TCP / IP [ID] => 285 [AUTHOR] => Хейвуд Дрю [PUBLISH] => DiaSoft [YEAR] => 2003 [types] => Array ( [0] => Коммуникации и сети [1] => Интернет-протоколы ) ) )
|
Мне надо записать такой массив в бд:
$my_sql->query($db, "INSERT INTO $db[prefix]_books VALUES('ID', 'NAME', 'AUTHOR', 'PUBLISH', 'YEAR', 'types' )", 0);
|
Заранее спасибо всем кто поможет. | |
|
|
|
|
|
|
|
для: Night_Wolf
(08.11.2005 в 11:39)
| | types тоже массив получаеться, можно его разобрать в переменную, значения разделенную например каким-то символом, а потом записать? | |
|
|
|
|
|
|
|
для: Night_Wolf
(08.11.2005 в 11:39)
| | Ну... попробуйте так
<?php
foreach($arr as $line)
{
$sql[] = "('$line[ID]','$line[NAME]','$line[AUTHOR]','$line[PUBLISH]','$line[YEAR]','".$line['types'][0]."')";
}
$query = "INSERT INTO $db[prefix]_books VALUES ".implode(",",$sql);
$my_sql->query($db, $query, 0);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(08.11.2005 в 12:52)
| | $line['types'][0] выводит только первое значение.
Тут наверное надо $line['types'][$i]; с помощью $i++... Но как это делать... | |
|
|
|
|
|
|
|
для: Night_Wolf
(08.11.2005 в 13:03)
| | Я пробовал вот так
foreach($arr as $line)
{
$sql[] = "('$line[ID]','$line[NAME]','$line[AUTHOR]','$line[PUBLISH]','$line[YEAR]','".$line['types'][0]."|".$line['types'][1]."|".$line['types'][2]."')";
}
Но это ведь не грамотно и не красиво... | |
|
|
|
|
|
|
|
для: Night_Wolf
(08.11.2005 в 13:29)
| | Выходит ничего тут не сделаешь?
Загнать суб-массив в одну переменную невозможно... | |
|
|
|
|
|
|
|
для: Night_Wolf
(08.11.2005 в 14:46)
| | Можно и в одну переменную загнать массив, наример так
<?php
foreach($arr as $line)
{
$sql[] = "('$line[ID]','$line[NAME]','$line[AUTHOR]','$line[PUBLISH]','$line[YEAR]','".implode("|",$line['types'])."')";
}
$query = "INSERT INTO $db[prefix]_books VALUES ".implode(",",$sql);
$my_sql->query($db, $query, 0);
?>
|
Только при выборке запись types необходимо будет опять разбить уже при помощи функции explode()
<?php
$arr = explode("|",$types);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(08.11.2005 в 20:49)
| | Спасибо cheops, это то что мне нужно!> | |
|
|
|