Перейти к публикации

Импорт данных из CSV - почти сделлал - нужна помощь


Рекомендованные сообщения

Делаю сайт http://reki-ozera.ru который будет иметь очень большую базу данных, все статьи будут размещаться как новости - база в CSV файле

Кучу всего перерыл и что то собрал вроде этого...

1. файл (import.php)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title>Импорт данных из CSV файла в базу DLE</title>

</head>


<body>

<form action="csv.php" method="post" enctype="multipart/form-data">

<label>Выберите файл для импорта:</label><br>

<input name="file" type="file" size="50"><br>

<input name="Load" type="submit" value="Load">

</form>

</body>

</html>

2. файл (csv.php)

<?php 

$db = mysql_connect ("localhost","USER","PASS");

mysql_select_db ("DBNAMR",$db);

?> 


<?php


$url = $_FILES["file"]["name"];

echo 'Запись из файла: <b>'.$url.'</b><br>'; // Имя файла


$file_exp = explode(".", $_FILES["file"]["name"]);

if ($file_exp[1] != "csv") die("Неправильный формат файла."); // Допустимы файлы только с расширением csv



$handle = fopen("tmp/".$url, "r"); // Файл csv необходимо положить в папку tmp

while ($data = fgetcsv($handle, 10000, ";"))

{ 

$sql = mysql_query ("INSERT INTO dle_post

									(`date`, `autor`, `short_story`, `full_story`, `xfields`, `title`, `keywords`, `category`, `alt_name`, `allow_comm`, `approve`, `allow_main`, `tags`)

									values

									('$thistime', 'reki-ozera', '$data[2]', '$data[3]', '', '$data[5]', '$data[6]', '3', '', '1', '1', '0', 'по, новости')"

									);

$add_time = time()-5;

$thistime = date ("Y-m-d H:i:s", $add_time);


}

echo "Загрузка прошла успешно!<br>"; // Всё что в запросе, меняем на свои данные

fclose ($handle);


// Ниже на экран выводятся спарсенные значения //

echo '<br><br><b>Все записи:</b><br>';

echo '<div style="font-size:10px">';

$row = 1;

$fp = fopen ("tmp/".$url,"r");

while ($data = fgetcsv ($fp, 10000, ";")) {

    $num = count ($data);

    print "<p> $num поля в линии $row: <br>";

    $row++;

    for ($c=0; $c < $num; $c++) {

        print $data[$c] . "<br>";

    }

}

fclose ($fp);

echo "</div>";

?>

3. папка (tmp) в него надо бросить файл csv который надо будет импортировать...

Заходим сайт/import.php

Выбираем ваш CSV файл... он должен быть и в папке на сайте...

Потом импортируем...

Иногда правильно собирается иногда вообще не понятно как работает, потом знаю у меня неправильно оформлен доступ к БД надо правильно выправить... ребят - помогите...считай все сделал....

Изменено пользователем reki-ozera
Ссылка на сообщение
Поделиться на других сайтах

Глянул - красивый сайтик, только подвал разъехался (разорван) и шапка некрасиво слева.

На демке ограничения ;) - много не сделаешь...

Глянул пример: http://php.net/manual/en/function.fgetcsv.php , там пишут "!==FALSE", может, в этом проблема? - "стр_поз", например, не работает без этого :)

Ссылка на сообщение
Поделиться на других сайтах

Глянул - красивый сайтик, только подвал разъехался (разорван) и шапка некрасиво слева.

На демке ограничения ;) - много не сделаешь...

Глянул пример: http://php.net/manual/en/function.fgetcsv.php , там пишут "!==FALSE", может, в этом проблема? - "стр_поз", например, не работает без этого :)

Да я знаю, там править и править...

Не демо он - купленна лицензия...

Спасибо за статью.. почитаю

Ссылка на сообщение
Поделиться на других сайтах

Я скорее всег не правиль свормулировал суть проблемы, дело в том, что при импорте, пропадают некоторые слова или даже предложения - целиком... (!==FALSE) на это не влиятет

Вот сылка на проверочный CSV.

К примеру, в тблице есть столбик "Река Часовая - проверка EXCEL" - импортируется только вторая часть т.е. " - проверка EXCEL"

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...