[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Многомерный массив в таблицу
maykin
Всем привет! Подскажите есть ли стандартная функция для записи многомерного массива в таблицу mysql?
Вот есть у меня такой многомерный массив:

[0] => Array
(
[id] => 1
[tratata] => tratata
[nomer] => 663
[count] => 457
[data] => 0
)
[1] => Array
(
[id] => 2
[tratata] => tratata
[nomer] => 116
[count] => 458
[data] => 0
)
[2] => Array
(
[id] => 3
[tratata] => tratata
[nomer] => 27
[count] => 555
[data] => 0
)
[3] => Array
(
[id] => 4
[tratata] => tratata
[nomer] => 56
[count] => 777
[data] => 0
)
[..n] => Array
(
[id] => 5
[tratata] => tratata
[nomer] => 43
[count] => 48
[data] => 0
)


Нужно создать таблицу.
Имя столбцов в таблице это ключи массива [id],[tratata], [nomer],[count],[data]
Ну и записать данные массива в строки таблици. Элементов в массиве много.
Впринципе я уже начал писать функцию сам. Но подумал вдруг такое уже есть и зачем плодить говнокод изобретать велосипед.
Заранее спасибо.
maykin
Написал первую половину функции.

Парсим массив на имена ключей и создаем таблицу с нужными столбцами.

<?
//$arr массив

//получаем имена ключей массива

$stolbcy = array_keys($arr[0]);

//формируем имена столбцов для таблици
for($i=1;$i<count($stolbcy);$i++)
{
$_zapros[] = "`".trim($stolbcy[$i])."` TEXT NOT NULL,";
}
$zapros = implode('',$_zapros);

//создаем таблицу
mysql_query(" CREATE TABLE `viborka` (`id` INT AUTO_INCREMENT, $zapros PRIMARY KEY(`id`))") or die(mysql_error());

?>



Теперь немогу придумать как лучше записать данные в таблицу?
CaguCT
по моему нет, но и зачем, ведь все и так просто:

foreach($array as $key=>$val)
{
$sql = mysql_query("INSERT INTO table_name
(id, tratata, nomer,count,data)
VALUES ('"
.(int)$val['id']."','".$val['tratata']."','".(int)$val['nomer']."','".(int)$val['count']."','".$val['data']."')");
}
CaguCT
И вот так лучше не делай:
for($i=1;$i<count($stolbcy);$i++)

Потому как функция будет выполнятся каждый раз при прохождении цикла, лучше узнать размер массива до выполнения цикла:

$countarr = count($stolbcy);
for($i=1;$i<$countarr;$i++)
maykin
Спасибо большое. Будем пробовать
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.