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

Форум MySQL

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

 

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

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

тема: запись в бд из файла CSV
 
 автор: Василий   (03.02.2012 в 18:53)   письмо автору
 
 

Добрый день!
необходимо записать в следующую бд на сервере


CREATE TABLE IF NOT EXISTS `proba` (
  `id_school` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `full_name` text NOT NULL,
  `short_name` text NOT NULL,
  `welcome_name` text NOT NULL,
  `id_town` int(11) NOT NULL,
  `id_district` int(11) NOT NULL,
  `id_region` int(11) NOT NULL,
  `id_state` int(11) NOT NULL,
  `address` varchar(255) NOT NULL,
  `tel` varchar(255) NOT NULL,
  `fax` varchar(255) NOT NULL,
  `accreditation` varchar(255) NOT NULL,
  `licence` varchar(255) NOT NULL,
  `organ` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `email_second` varchar(255) NOT NULL,
  `site` varchar(255) NOT NULL,
  `director` varchar(255) NOT NULL,
  `text` text NOT NULL,
  `ling` text NOT NULL,
  `logo` varchar(255) NOT NULL,
  `advertisment` int(1) NOT NULL DEFAULT '0',
  `coords` varchar(50) NOT NULL,
  PRIMARY KEY (`id_school`),
  KEY `id_town` (`id_town`),
  KEY `id_region` (`id_region`),
  KEY `id_state` (`id_state`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=692 ;


вот этот файл CSV

;;индекс;район;населенный пункт;улица, дом;ФИО директора ;Телефон ;e-mail;
Аннинский муниципальный район;Муниципальное общеобразовательное учреждение  Аннинская средняя 
общеобразовательная школа №1;396252;Аннинский муниципальный район;п.г.т. 
Анна;Красноормейская,199;Попова Маргарита Владимировна;(47346) 2-76-10;aschool1@mail.ru ;488

Аннинский муниципальный район;Муниципальное общеобразовательное учреждение  Аннинский 
лицей;396252;Аннинский муниципальный район;п.г.т. Анна,;Коммунальная, 104;Чабанова Евгения Викторовна;
(47346) 2-14-38;evgchab@rambler.ru  ;623

поля не совпадают.

  Ответить  
 
 автор: cheops   (03.02.2012 в 19:07)   письмо автору
 
   для: Василий   (03.02.2012 в 18:53)
 

Если не сложно сопоставьте еще полям CSV названия столбцов из базы данных? Вот эти данные в какие столбцы должны лечь?
- Аннинский муниципальный район;
- Муниципальное общеобразовательное учреждение Аннинская средняя общеобразовательная школа №1;
- 396252;
- Аннинский муниципальный район;
- п.г.т. Анна;
- Красноормейская,199;
- Попова Маргарита Владимировна;
- (47346) 2-76-10;
- aschool1@mail.ru ;
- 488

  Ответить  
 
 автор: Василий   (03.02.2012 в 20:18)   письмо автору
 
   для: cheops   (03.02.2012 в 19:07)
 

- Аннинский муниципальный район; - ЭТО НЕ НУЖНО
- Муниципальное общеобразовательное учреждение Аннинская средняя общеобразовательная школа №1; - TITLE
- 396252;
- Аннинский муниципальный район; - ADDRESS
- п.г.т. Анна; - ADDRESS
- Красноормейская,199; - ADDRESS
- Попова Маргарита Владимировна; - DIRECTOR
- (47346) 2-76-10; - TEL
- aschool1@mail.ru ;- EMAIL
- 488 - - ЭТО НЕ НУЖНО

пЛЮС НАДО поля
`id_town` int(11) NOT NULL,
`id_district` int(11) NOT NULL,
`id_region` int(11) NOT NULL,
`id_state` int(11) NOT NULL,
заполнить

  Ответить  
 
 автор: Василий   (03.02.2012 в 23:32)   письмо автору
 
   для: Василий   (03.02.2012 в 20:18)
 

в ожидании вашего ответа

  Ответить  
 
 автор: cheops   (04.02.2012 в 12:57)   письмо автору
 
   для: Василий   (03.02.2012 в 20:18)
 

Можно начать отталкиваться от следующего скрипта
<?php
  
// Устанавливаем соединение с базой данных
  
require_once("config.php");
  
// Разбираем CSV-файл
  
$lines file("index.csv");
  
$sql = array();
  for(
$i 1$i count($lines); $i++)
  {
    
$lines[$i] = trim($lines[$i]);
    if(!empty(
$lines[$i]))
    {
      
$arr = array();
      
$arr explode(";"$lines[$i]);
      
$sql[] = "(
        NULL,
        '"
.mysql_escape_string($arr[1])."',
        '',
        '',
        '',
        0,
        0,
        0,
        0,
        '"
.mysql_escape_string($arr[2]." ".$arr[3]." ".$arr[4]." ".$arr[5])."',
        '"
.mysql_escape_string($arr[7])."',
        '',
        '',
        '',
        '',
        '"
.mysql_escape_string($arr[8])."',
        '',
        '',
        '"
.mysql_escape_string($arr[6])."',
        '',
        '',
        '',
        0,
        '')"
;
    }
  }
  if(!empty(
$sql))
  {
    
$query "INSERT INTO proba VALUES ".implode(","$sql);
    if(!
mysql_query($query))
    {
      echo 
"Ошибка выполнения SQL-запроса: ".mysql_error();
    }
  }
?>

  Ответить  
 
 автор: Василий   (04.02.2012 в 23:24)   письмо автору
 
   для: cheops   (04.02.2012 в 12:57)
 

вы предлагаете запись через php

а разве не легче будет через phpmyadmin?

  Ответить  
 
 автор: cheops   (04.02.2012 в 23:41)   письмо автору
 
   для: Василий   (04.02.2012 в 23:24)
 

Попробуйте.

  Ответить  
 
 автор: Василий   (05.02.2012 в 01:17)   письмо автору
 
   для: cheops   (04.02.2012 в 23:41)
 

ну знал бы как сделать, давно бы сделал.

  Ответить  
Rambler's Top100
вверх

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