За последние 24 часа нас посетили 17711 программистов и 1284 робота. Сейчас ищут 1442 программиста ...

Загрузка csv файла через форму в БД и последующая проверка

Тема в разделе "MySQL", создана пользователем rolph, 15 янв 2007.

  1. rolph

    rolph Активный пользователь

    С нами с:
    15 янв 2007
    Сообщения:
    10
    Симпатии:
    0
    Адрес:
    Москва
    Друзья,

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

    CSV вида
    ФИО;год;(или ноль,или единица);

    Поля таблицы БД
    fio,year,gr - соответственно.

    Подскажите пожалуйста, как это реализовать?

    Есть следующие наработки:
    Код (Text):
    1.  
    2. $mydatabase = "people";
    3. $mytable = "grad";
    4. $user = "admin";
    5. $pass ="password";
    6. $address ="localhost";
    7. $CSV = "grad.csv";
    8. $seperator = ";";
    9.  
    10. $db = mysql_pconnect("$address", "$user", "$pass");
    11.  
    12.         if (!$db)
    13.         {
    14.                echo "Error!<p>";
    15.                
    16.         }
    17.  
    18.  
    19.         mysql_select_db($mydatabase);
    20.            
    21.         $openit = file($CSV);
    22.         $counter = count($openit);
    23.            
    24.         $filearray = file("$CSV");
    25.            
    26.         echo "Загрузка в базу";
    27.         for($i=0; $i<$counter; $i++)
    28.        
    29.         {
    30.        
    31.             $item = explode("$seperator", $filearray[$i]);
    32.            
    33.            
    34.             include("query.inc");
    35.                 $result = mysql_query($query);
    36.                
    37.                 if ($result)    
    38.                 {
    39.                        echo $effected_item."добавили\n";
    40.                 }
    41.                 else
    42.                 {
    43.                        echo $effected_item." не добавили\n";
    44.                 }
    45.            
    46.             }
    47.  
    48. Запрос query.inc
    49.  
    50. $query = "insert into grad values ('', '$item[0]', '$item[1]', '$item[2]')";
    51. $effected_item = "$item[2]";
     
  2. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    Решение данной проблемы требует трех умений:
    1. Умение загрузить файл на сервер.
    2. Умение извлечь из файла нужные данные в нужном формате.
    3. Умение сохранить данные в БД.

    В каком из этих трех пунктов не получается и что конкретно?
     
  3. draak

    draak Guest

    fgetcsv - получает строку из указателя файла и разбирает её на CSV-поля.
     
  4. draak

    draak Guest

    LOAD DATA INFILE 'deliveries.csv' INTO TABLE tbl