Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: PHP & CSV TO MySQL
 
 автор: voderchek   (25.04.2005 в 23:10)
 
 

Доброго времени суток ...
Вопрос к чеопсу )
Купил Вашу книгу : "PHP 5 - практика создания веб-сайтов" , и увидел прикольную штуку . Вообщем там у вас есть ипорт прайс-листа в базу MySQL , в файле все описанно , но не так что-бы уж подробно :( В книге смортю , а там пишется , подробное описание в главе №7. ТАкого я почему-то не нашел ...
А шеф у меня на работе строгий (( Надо импортировать базу данных в Mysql... Много сайтов перерыл , ничего путёвого не нашел :(
Так вот просьба .....
Допустим у меня в прайсе идёт около 5-ти полей , нужно их импортировать средствами php в таблицу : table_info (к примеру) в которой тоже 5 полей + 6-е id...
При это возможно ли сделать добавления id каждой записи при импорте?
Жду Вашей помощи )))
Заранее блогодарен !
Книга - СУПЕР .... Уже многому научился )))

   
 
 автор: Crux   (25.04.2005 в 23:36)   письмо автору
 
   для: voderchek   (25.04.2005 в 23:10)
 

это просто.

<?
$data 
File("file.csv");
for (
$i=0;$i<count($data);$i++)
{
$data_array explode(";"$data[$i]);
$query "insert into table_info ( id , name1, name2, name3, name4, name5 ) values ( '', '".$data_array[1]."', '".$data_array[2]."' , '".$data_array[3]."', '".$data_array[4]."', '".$data_array[5]."')";
mysql_query$query);
}
?>

   
 
 автор: voderchek   (25.04.2005 в 23:52)
 
   для: Crux   (25.04.2005 в 23:36)
 

Вот какой у меня код :

<? 
include "config.php";
$data File("imp.csv"); 
for (
$i=0;$i<count($data);$i++) 

$data_array explode(";"$data[$i]); 
$query "insert into cat ('id' , 'name1', 'name2', 'name3', 'name4', 'name5') values ( '', '".$data_array[1]."', '".$data_array[2]."' , '".$data_array[3]."', '".$data_array[4]."', '".$data_array[5]."')"
$result mysql_query$query);


?>


Вот конфиг :

<?php


  $dblocation 
"localhost";
  
$dbname "test";
  
$dbuser "test";
  
$dbpasswd "test";

  
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
  
mysql_select_db($dbname,$dbcnx);
?>


Вот структура бд :

CREATE TABLE cat (
  id int(11) NOT NULL auto_increment,
  name1 varchar(20) default NULL,
  name2 varchar(20) default NULL,
  name3 varchar(20) default NULL,
  name4 varchar(20) default NULL,
  name5 varchar(20) default NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM;



неработает :(

   
 
 автор: voderchek   (25.04.2005 в 23:53)
 
   для: voderchek   (25.04.2005 в 23:52)
 

Ни ошибок ни ипорта :(
Помогите разобратся

   
 
 автор: Serge   (26.04.2005 в 01:58)   письмо автору
 
   для: voderchek   (25.04.2005 в 23:53)
 

Думается мне, уважаемый Crux все-таки был прав, проименовав названия строк id, name1, name2, name3, name4, name5 без кавычек:


<?
include "config.php";
$data File("imp.csv");
for (
$i=0;$i<count($data);$i++)
  {
  
$data_array explode(";"$data[$i]);
  
$query "insert into cat (id , name1, name2, name3, name4, name5) values ( '', '".$data_array[1]."', '".$data_array[2]."' , '".$data_array[3]."', '".$data_array[4]."', '".$data_array[5]."')";
  
$result mysql_query$query);
  }
?>

   
 
 автор: Crux   (26.04.2005 в 06:13)   письмо автору
 
   для: Serge   (26.04.2005 в 01:58)
 

скачай Скрипт "Каталог продукции" (MySQL) http://www.softtime.ru/info/catalog.php, там как раз реализовано запись в БД из файла CSV.
файл admin/catalog/import_act.php

   
 
 автор: cheops   (26.04.2005 в 13:52)   письмо автору
 
   для: voderchek   (25.04.2005 в 23:52)
 

Попробуйте обработать ошибку после строки
<?php
  $result 
mysql_query$query);
?>

т.е. написать примерно следующий код
<?php
  $result 
mysql_query$query);
  if(!
$result) exit("Ошибка в синтаксисе - ".mysql_error());
?>


PS Я и на Хеопс откликаюсь :)))

   
 
 автор: Loki   (01.07.2005 в 13:45)   письмо автору
 
   для: cheops   (26.04.2005 в 13:52)
 

Надо сделать импорт в БД из файла. Пытаюсь продумать структуру файла и возможные проблемы.
Если в csv данные разделены ";" то как его правильно обработать - ведь точка с запятой может встретится и внутри текстового поля?
Можно, конечно, использовать другой разделитель. Просто, не хотелось бы изобретать велосипед.
Как делают в таких случаях?

   
 
 автор: cheops   (01.07.2005 в 20:33)   письмо автору
 
   для: Loki   (01.07.2005 в 13:45)
 

Обычно в этом случае вместо ; используют символ табуляции, вероятность появления которого в тексте мала.

   
 
 автор: Loki   (01.07.2005 в 21:49)   письмо автору
 
   для: cheops   (01.07.2005 в 20:33)
 

А как он обозначается в коде?

   
 
 автор: cheops   (02.07.2005 в 00:05)   письмо автору
 
   для: Loki   (01.07.2005 в 21:49)
 

\t

   
 
 автор: global_query   (02.07.2005 в 14:39)
 
   для: cheops   (02.07.2005 в 00:05)
 

Огромное спасибо всем за помощь, ребят вы мне очень помогли, не было времени зайти и отписаться тут и поблагодарить Вас. Оказывается, очень легко делать import .
(с) voderchek

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования