|
|
|
|
<?php
include "config.php";
$handle = fopen("fed.csv", "r");
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
$num = count($data);
for ($c=0; $c < $num; $c++) {
$sql = "INSERT INTO budget VALUES ($data[0],'$data[1]','$data[2]')";
if(mysql_query($sql))
{
echo "Данные импортированы<br />";
}
else echo mysql_error();
;
}
}
fclose($handle);
?>
|
Результат импорта в БД такой
id_lgota name_budget area
102 federal
102 federal
и.т.д...
|
тоесть стлбец name_budget пропускается хотя в csv файле он забит значениями.
Почему так получается? | |
|
|
|
|
|
|
|
для: ols
(29.10.2008 в 10:41)
| | покажите кусок csv-файла | |
|
|
|
|
 142 байт |
|
|
для: elenaki
(29.10.2008 в 11:53)
| | Прикрепил csv- файл во вложении.
На случай, структура таблицы БД вот
CREATE TABLE `budget` (
`id_lgota` int(11) NOT NULL default '0',
`name_budget` enum('federal','obl','gor') NOT NULL default 'federal',
`area` tinytext NOT NULL,
KEY `id_lgota` (`id_lgota`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
|
| |
|
|
|
|
|
|
|
для: ols
(29.10.2008 в 12:07)
| | а у вас не перепутан порядок полей? в csv federal - последнее поле, а в базе - второе.
$sql = "INSERT INTO budget VALUES ($data[0],'$data[2]','$data[1]')";
|
с таким запросом у меня занеслись в базу все поля (в тройном варианте). цикл for не нужен. | |
|
|
|
|
|
|
|
для: elenaki
(29.10.2008 в 12:31)
| | Действительно. Это из-за невнимтельности, очень много времени без перерыва за компьтером.
Спасиба, все поменял поля местами в таблице все пошло.
А тип ENUM чем ненарвится? Просто дальше пойдет импорт где вместо federal будет obl, а потом выборка по этоу типу будет. | |
|
|
|