Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Помогите с добавлением CSV в MySQL

 
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP
 
Автор Сообщение
Алексей

Новенький


Зарегистрирован: 29.07.2009
Сообщения: 12

СообщениеДобавлено: Сб Окт 10, 2009 8:30 am    Заголовок сообщения: Помогите с добавлением CSV в MySQL
Ответить с цитатой

Таказя задача: Есть и-нет магазин. нужно в БД добавить товары из цсв. Это я седлал. Потом нужно сделать проверку БД на наличие этих товаров. И если таковые есть, то просто обновить данные о них из цсв. Потом в конце выводиться отчет колько всего записей в файле, сколько добавлено и удалено и это я сделал. Еще нужно сделать так: Потом скрипт должен удалять все записи из таблицы, которых нет в ЦСВ. Т.е. те записи, которые есть в БД, а в новом цсв их нет. Вот я не сделал удаление файлов и и почему-то файл в 200кб обрабатывается 45 (!) секунд. Т.е. скрипт работет очень медленно! Sad Ниже сам скрипт. ПОсмотрите почему так. Даже удаление делать не так важно! Я просто не работал над ним. Главное - подскажите, почему он так долго работает!!!!!! Sad

Цитата:
<?php
require "includes/config.php";
mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db($db_name);

//Загрузка csv
?>
<table border="0" align="center" width="100%"><tr align="center"><td>
<form enctype="multipart/form-data" action="add.php" method="POST">
<b>Файл:</b> <input name="csv" type="file">&nbsp;&nbsp;
<input type="hidden" name="sname" value="<?php echo $sname?>">
<input type="submit" name="send" value="Загрузить">
</form>
<?php
if (isset($_FILES['csv']))
{
$dir="csv/";
$csv=$_FILES['csv']['tmp_name'];
$csv_name=$_FILES['csv']['name'];
$csv_error=$_FILES['csv']['error'];
if ($csv_error==0)
{
$csv_name=$dir.$csv_name;
if (move_uploaded_file($csv,$csv_name))
{
$down=true;
}
} else
{
$down=false;
$msg="<font color=red>Ошибка! CSV-файл не загружен!</font>";
}

if ($down)
{
$sql="SELECT * FROM tovars";
$tov=mysql_query($sql);

$zap=0;
$adds=0;
$readd=0;
$dellete=0;
$errors=0;
$nulles=0;
//Импорт в MySQL
$handle = fopen ($csv_name,"r");
while (($data = fgetcsv ($handle, 0, ";")) !==false)
{
$num = count ($data);
$c=0;
$row=array();
while ($c < $num)
{
$row[$c]=str_replace("\\", "/", $row[$c]);
$row[$c]=ereg_replace("'", "&quot;", $row[$c]);
$row[$c]=ereg_replace('"', "&quot;", $row[$c]);
$row[$c]=mysql_escape_string($data[$c]);
$row[$c]=htmlspecialchars($row[$c]);
$row[$c]=trim($row[$c]);
$c++;
}
$first=strlen($row[0]);
$sec=strlen($row[1]);
$fird=strlen($row[3]);
$six=strlen($row[6]);
$sev=strlen($row[7]);
$ni=strlen($row[9]);
if (($num==10) || ($num==11) && ($first>0) && ($sec>0) && ($fird>0) && ($six>0) && ($six<4) && ($sev>0) && ($sev<4) && ($ni>0))
{
$sql="SELECT COUNT(*) AS rec FROM tovars WHERE diler=\"$row[0]\" AND name=\"$row[3]\"";
$tov=mysql_query($sql);
$f=mysql_fetch_row($tov);
$s=$f[0];
if ($s == 0)
{
$adds++;
$sql="INSERT INTO tovars VALUES (\"0\", \"$row[0]\", \"$row[1]\", \"$row[2]\", \"$row[3]\", \"$row[4]\", \"$row[5]\", \"$row[6]\",
\"$row[7]\", \"$row[8]\", \"$row[9]\", \"$row[10]\")";

} else
{
$sql="UPDATE tovars SET licens=\"$row[1]\", art=\"$row[2]\", true_name=\"$row[4]\",
god=\"$row[5]\", cat=\"$row[6]\", sub_cat=\"$row[7]\", new=\"$row[8]\", price=\"$row[9]\", opis=\"$row[10]\" WHERE diler=\"$row[0]\" AND name=\"$row[3]\"";
$readd++;
}
$zap++;
// echo $sql."<br>";

if (mysql_query($sql))
{
$import=true;
$msg="<font color=green>Файл <b>$csv_name</b> успешно импортирован</font>!";
} else
{
$msg="<font color=red>Ошибка импорта файла <b>$csv_name</b>!</font>";
}
} else { $msg="<font color=red>Ошибка импорта файла <b>$csv_name</b>! Не верный формат CSV!</font>";}


}

$zapis="Записей в файле: <b>".$zap."</b><br>";
$readds="Обнавлено в базе: <b>".$readd."</b><br>";
$addses="Добавлено в базу: <b>".$adds."</b><br>";
$delletes="Удалено: <b>".$dellete."</b><br>";
$errorses="Ошибок импорта: <b>".$errors."</b><br>";
$null="Пустых строк: <b>".$nulles."</b><br>";

}

}
if ($import)
{
$date=date("d.m.Y");
$time=date("H:i:s");
$sql="INSERT INTO upload_csv VALUE (\"0\", \"$csv_name\", \"$date\", \"$time\")";
mysql_query($sql);
}

?>
</td></tr><tr align="center"><td><br>
<table width="60%" cellpadding="5" cellspacing="1" border="1" bgcolor="#000000">
<tr bgcolor="#efefef">
<td colspan="2"><b>Внимание:</b>&nbsp;&nbsp;&nbsp;<?php echo $msg;?></b></td>
</tr>
<tr valign="top">
<td bgcolor="#ffffff" width="70%">
Список добавленых файлов:<br><BR>
<?php
$sql = "SELECT * FROM upload_csv ORDER BY id DESC";
$r=mysql_query($sql);
$num=mysql_num_rows($r);
while ($row=mysql_fetch_object($r))
{
$date=date("d.m.Y");
if ($row->date==$date)
{
echo "<li type=\"square\" style=\"color: #ffcc00\"><font color=\"#000000\">$row->file - загружен <b>Сегодня</b> в <b>$row->time</b><br>";
} else
{
echo "<li type=\"square\" style=\"color: #ffcc00\"><font color=\"#000000\">$row->file - загружен <b>$row->date</b> в <b>$row->time</b><br>";
}
}
echo "</td><td bgcolor=\"#ffffff\">
Отчет о импорте CSV:<br><br>

$zapis
$addses
$readds
$delletes
$errorses
$null
</td><tr>
</table>"
?>
</td></tr><tr align="center"><td>
<br>
<br>
<br>
<?php include "menu.php";?>
</tr></td></table>
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP Часовой пояс: GMT
Страница 1 из 1
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис