X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Помогите дописать скрипт импорта csv
scva
scva
Topic Starter сообщение 2.7.2009, 11:21; Ответить: scva
Сообщение #1


Пожалуйста помогите дописать скрипт импорта csv

форма для отправки excel.php
<form action="<?=$_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
<input type="file" name="file" /><br /><br />
<input type="submit" name="import_file" value="Импортировать" />
</form>

в базе к примеру 4 поля id, title, name, price
В csv тоже
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 2.7.2009, 11:27; Ответить: Webmaster_hb
Сообщение #2


а подумать ?
1. прочитать файл построчно
2. разделить каждую строку на элементы (используя разделители)
3. записать каждый элемент в базу
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
scva
scva
Topic Starter сообщение 2.7.2009, 11:51; Ответить: scva
Сообщение #3


по первому пункту будет так?
readfile( "file.csv" );
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 2.7.2009, 12:16; Ответить: Webmaster_hb
Сообщение #4


для построчного чтения, можно использовать
fgets
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
scva
scva
Topic Starter сообщение 2.7.2009, 13:50; Ответить: scva
Сообщение #5


(Webmaster_hb @ 2.7.2009, 15:16) *
для построчного чтения, можно использовать
fgets


будет так пункт 1 и 2?
$str=fgets ("file.csv");
parse_str ($str)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 2.7.2009, 13:54; Ответить: Webmaster_hb
Сообщение #6


fgets считывает только одну строку

после этого вам нужно разбить строку на переменные вот так
[PHP]list( $id, $title, $name, $price) = explode(",", $str);[/PHP]
разделитель укажите тот что у вас в CSV файле
он может быть и другим
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
scva
scva
Topic Starter сообщение 2.7.2009, 14:11; Ответить: scva
Сообщение #7


(Webmaster_hb @ 2.7.2009, 16:54) *
fgets считывает только одну строку

после этого вам нужно разбить строку на переменные вот так
[php]list( $id, $title, $name, $price) = explode(",", $str);[/php]разделитель укажите тот что у вас в CSV файле
он может быть и другим


то есть
<form action="<?=$_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
<input type="file" name="file" /><br /><br />
<input type="submit" name="import_file" value="Импортировать" />
</form>

<?
if (isset($submit))
{
$str=fgets ("file.csv");
list( $id, $title, $name, $price) = explode(",", $str);
}
?>
а дальше что?
прошу прощение просто я чайник в этом деле и мне просто надо разжевать каждую строчку
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 2.7.2009, 16:03; Ответить: Webmaster_hb
Сообщение #8


а вы попробуйте сами решить, эти вопросы уже самые простые


уже несколько раз намекал что fgets прочитает только одну строчку
а вам нужно прочитать весь файл по одной строчке
[PHP]<?php
$query="";
$handle = fopen("file.csv", "r");
while (!feof($handle)) {
$str= fgets($handle, 4096);
list( $id, $title, $name, $price) = explode(",", $str);
$query .= "INSERT INTO `table` SET `id`='$id', `title`='$title', `name`='$name', `price`='$price';\n";
}
fclose($handle);
mysql_query($query);
?> [/PHP]
p.s. вы наверно забыли еще один вопрос - это загрузка самого файла ))))) судя по форме, файл загружает пользователь, и до того как его читать, его надо загрузить на сервер
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
scva
scva
Topic Starter сообщение 19.4.2010, 12:08; Ответить: scva
Сообщение #9


не работает импорт, то есть мне надо обновить данные

[php]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Импортер</title>
</head>
<body>


<?
if (isset($_GET['id'])) {$id = $_GET['id'];}
if (isset($_POST['import'])) {$import = $_POST['import'];}
if (isset($_POST['id'])) {$id = $_POST['id'];}

if (isset ($import))
{


$data = File("..../admin/1.csv");
for ($i=0;$i<count($data);$i++)
{


$data_array = explode(";", $data[$i]);


unset ($data_array[0]);
$query = "UPDATE table SET id='$data_array[0]',
title='$data_array[1]',
des='$data_array[2]',
sex='$data_array[3]',
korpus='$data_array[4]',
color='$data_array[5]',
bracelet='$data_array[6]',
glass='$data_array[7]',
wr='$data_array[8]',
diameter='$data_array[9]',
description='$data_array[10]',
price='$data_array[11]',
id_category='$data_array[12]',
name_category='$data_array[13]',
id_podcat='$data_array[14]',
name_podcat='$data_array[15]',
opisanie='$data_array[16]',
id_brand='$data_array[17]',
name_brand='$data_array[18]',
aricul='$data_array[19]',
dop='$data_array[20]',
yamarket='$data_array[21]',
spec='$data_array[22]' WHERE id='$data_array[0]'" or die("error");
$result = mysql_query( $query);

echo "Успешно";

}

}

else
{
echo '<form action="importer.php" method="post" name="form">
Обновить? <input name="import" type="submit" value="да" />
</form>';

}



?> [/php]после выполнения пишет успешно, а изменений в базе нет

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Продам скрипт rtb exchange suite - система перепродажи трафика dsp/ssp в реальном времени.
5 buypushplatform 4285 Вчера, 21:02
автор: 100ftd
Открытая тема (нет новых ответов) Помогите вспомнить рекламного бота Телеграм для обмена рекламой
0 Mixatraider 728 21.2.2024, 23:42
автор: Mixatraider
Открытая тема (нет новых ответов) Скрипт поисковика видео StrongTube
3 3josoft 1575 14.8.2023, 14:45
автор: 3josoft
Открытая тема (нет новых ответов) Скрипт приема платежей p2p с карты на карту card2card
Скрипт приема платежей p2p с карты на карту card2card
15 zladey1986 7840 26.3.2023, 8:54
автор: Palundra
Открытая тема (нет новых ответов) Продам скрипт перевода постов и комментариев
4 Tutich 788 19.1.2023, 17:23
автор: Tutich


 



RSS Текстовая версия Сейчас: 24.4.2024, 3:28
Дизайн