|
| |
|
|
| |
для: cheops
(22.03.2007 в 01:10)
| | | Я полагаю, тут если и наши постарались, то вовсе не "умельцы", а скорее традиции.
В панели управления, раздел "языки и стандарты", на вкладке "числа" есть параметр "Разделитель элементов списка".
В американском стандарте это запятая.
У нас это точка с запятой, поскольку запятая -традиционный разделитель целой и дробной части.
CSV-разделитель excel'ем берется именно оттуда. | |
| |
|
|
| |
|
|
| |
для: cheops
(22.03.2007 в 01:10)
| | | Понятно , а я то думал | |
| |
|
|
| |
|
|
| |
для: ШИМ
(21.03.2007 в 23:20)
| | | Так надо, это же Excel, причём переведённый на русский язык нашими умельцами... просто знайте, что на самом деле это точка с запятой. | |
| |
|
|
| |
|
|
| |
для: Trianon
(21.03.2007 в 22:32)
| | | Странно ВОТ ВЫБИРАЕШ СОХРАНИТЬ КАК -> СSV(разделители ЗАПЯТЫЕ) !
cохранил, открыл в блокноте а разделитель не ЗАПЯТАЯ, А ТОЧКА С ЗАПЯТОЙ | |
| |
|
|
| |
|
|
| |
для: ШИМ
(21.03.2007 в 21:27)
| | | А Вы создайте csv-файл тем же excel-ем, и разглядите его получше.
Они разные бывают. | |
| |
|
|
| |
|
|
| |
для: Trianon
(21.03.2007 в 21:12)
| | | Спасибо, с этим разобрался!
Только теперь непойму!
Если в форме разделитель указываеш - ;
то работает, а елси просто ЗАПЯТАЯ, то не работает!!!
Ведь в csv разделителями идут ЗАПЯТЫЕ , а не ТОЧКА С ЗАПЯТОЙ | |
| |
|
|
| |
|
|
| |
для: ШИМ
(21.03.2007 в 20:57)
| | | если запрос выполнен неудачно, помимо текста запроса имеет смысл вывести диагностику
echo mysql_error();
чтобы понять, в чем именно ошибка. | |
| |
|
|
| |
|
|
| |
// Осуществляем соединение с базой данных
require_once("../config.php");
if(empty($_FILES['csv']['tmp_name']))
puterror("Ошибка при отправке csv-файла");
if(!($fp = fopen($_FILES['csv']['tmp_name'],"rb")))
puterror("Ошибка при открытии отправленного файла");
// Читаем содержимое файла
$buffer = fread($fp,filesize($_FILES['csv']['tmp_name']));
// Закрываем файл
fclose($fp);
// Удаляем файл
unlink($_FILES['csv']['tmp_name']);
// Присваиваем по умолчанию
$separator = ";";
// Если передан параметр separator изменяем значение переменной $separator
$separator = $_POST['separator'];
// Если имеются пустые позиции забиваем их прочерком -
$buffer = str_replace($separator.$separator, $separator."-".$separator,$buffer);
$buffer = str_replace("\n".$separator, "\n-".$separator,$buffer);
$buffer = str_replace($separator."\n", $separator."-\n",$buffer);
// Разбиваем файл по строкам, каждую из которых заносим
// в отдельный элемент массива $strtmp
$tok = strtok($buffer,"\n");
while($tok)
{
$tok = strtok("\n");
$strtmp[] = $tok;
}
// Начало формирования SQL-запроса на вставку данных из
// csv-файла
$insert_query = "insert into test values ";
// Разбиваем строку по отдельным словам, используя
// разделитель $separator
foreach($strtmp as $value)
{
// Если строка пуста - выходим из цикла. Пустые строки могут появится,
// если в конце csv-файла находятся пустые строки.
if(empty($value)) break;
// Определяем район
// Имя
$name = strtok($value,$separator);
$price=strtok(substr($value,strlen($name),strlen($value)),$separator);
// Формируем и выполняем SQL-запрос на добавление позиции
$insert_query .= "(NULL,
'$name',
$price),";
}
// Из запроса $insert_query удаляем последнюю запятую
$insert_query = substr($insert_query,0,strlen($insert_query)-1);
// Выполняем SQL-запросы
if(mysql_query($insert_query))
{
echo "Успешно";
}
else
{
echo $insert_query;
echo "<br>";
}
?>
|
вобщем в конце если запрос выполнен удачно, то - УСПЕШНО,
если с ошибкой выводит сам запрос!
Так вот что не так в запросе?
insert into test values (NULL, 'first', 100 ),(NULL, 'third', 300 ),(NULL, 'second', 200 )
|
| |
| |
|
|
|