Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Dowiedz się więcej OK, rozumiem

Import pliku csv do bazy danych mysql

Zaczynasz dopiero swoją przygodę z HTML'em? A może mimo swojego doświadczenia natknąłeś się na jakiś problem? Tutaj na pewno znajdziesz pomoc.

Import pliku csv do bazy danych mysql

Post 06.12.2017, 08:12:52

Witam mam plik w csv i chciałbym za pomocą php zaimportować te dane do bazy mysql
Tak wyglądają dane w pliku csv:
349190600,"BIELSKO-BIAŁA","2017","11","01",7.9,"",5.5,"",6.3,"",7.4,"",77.5,"",972.7,"",1021.4,"",.0,"",.1,""
349190600,"BIELSKO-BIAŁA","2017","11","02",5.9,"",3.5,"",6.3,"",7.4,"",74.5,"",962.7,"",1020.4,"",.1,"",.1,""
349190900,"SZCZECIN","2017","11","01",5.9,"",8.5,"",2.3,"",7.4,"",70.5,"",982.7,"",1028.4,"",.0,"",.2,""
itd
Mam plik php z możliwością wyboru pliku csv z kompa i powinien przesyłać te dane do bazy mysql ale coś nie działa.
Kod: Zaznacz cały
<?php

//connect to the database
$db = mysql_connect('localhost','login','pass');
mysql_select_db('nazwa_bazy'); //select the table
//

if ($_FILES[csv][size] > 0) {

    //get the csv file
    $file = $_FILES[csv][tmp_name];
    $handle = fopen($file,"r");
     
    //loop through the csv file and insert into database
    do {
        if ($data[0]) {
            mysql_query("INSERT INTO obecnie (`nazwastacji`, `miasto`, `rok`, `miesiac`, `dzien`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`) VALUES
                (
                    '".addslashes($data[0])."',
                    '".addslashes($data[1])."',
                    '".addslashes($data[2])."',
                    '".addslashes($data[3])."',
                    '".addslashes($data[4])."',
                    '".addslashes($data[5])."',
                    '".addslashes($data[6])."',
                    '".addslashes($data[7])."',
                    '".addslashes($data[8])."',
                    '".addslashes($data[9])."',
                    '".addslashes($data[10])."',
                    '".addslashes($data[11])."',
                    '".addslashes($data[12])."',
                    '".addslashes($data[13])."',
                    '".addslashes($data[14])."'
                )
            ");
        }
    } while ($data = fgetcsv($handle,1000,",","'"));
    //

    //redirect
    header('Location: inportcsv.php?success=1'); die;

}

?>

<!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=iso-8859-1" />
<title>Import a CSV File with PHP & MySQL</title>
</head>

<body>

<?php if (!empty($_GET[success])) { echo "<b>Your file has been imported.</b><br><br>"; } //generic success notice ?>

<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
  Choose your file: <br />
  <input name="csv" type="file" id="csv" />
  <input type="submit" name="Submit" value="Submit" />
</form>

</body>
</html>

Tak wygląda baza danych
Obrazek
Dlaczego to nie działa?
Może ma ktoś inny działające kod do przesyłania danych z pliku csv z góry dziękuję za pomoc.
brzanek
Posty: 16
Dołączył(a): 22.11.2013

Re: Import pliku csv do bazy danych mysql

Post 06.12.2017, 14:03:55

"Coś nie działa" nic nie mówi. Opisz może dokładniej co się dzieje? Widzisz jakieś błedy na ekranie? A może pustą stronę? Czy wydaje się, jakby wszystko działało, zostajesz na koniec przekierowany na inportcsv.php?success=1, ale w bazie nie ma danych?
Na jakiej wersji PHP uruchamiasz? Może nie masz już właczonego rozszerzenia mysql_*?
Ostatni parametr
Kod: Zaznacz cały
fgetcsv($handle,1000,",","'")

powinien być chyba
Kod: Zaznacz cały
'"'
, ponieważ wartości tekstowe są pomiędzy cudzysłowami a nie apostrofami.
Wstaw pod wywołaniem mysql_query()
Kod: Zaznacz cały
echo mysql_error();
może wtedy zobaczysz jakieś błędy.
Nazwy kolumn w bazie 1, 2, 3, ..., 9 też nie jestem pewien czy są dozwolone, choć jak phpMyAdmin przepuścił, to może są…
Avatar użytkownikakuku
Rafał Kukawski

+∞
+∞

Posty: 19663
Dołączył(a): 14.04.2002


Powrót do Początkujący webmaster


 


  • Podobne wątki
    Odpowiedzi
    Wyświetlone
    Ostatni post

Kto przegląda forum

Użytkownicy przeglądający ten dział: Bing [Bot], Google [Bot] i 2 gości

Hosting, Domeny, SSL

Subskrypcja

Mamy 50860 zarejestrowanych użytkowników.
Najnowszy użytkownik: anka88


Nasi użytkownicy napisali:

  • 936278 wiadomości
  • w 246802 tematach

Najnowsze wpisy na blogu

Najnowsze artykuły

Najaktywniejsi (ostatnie 30 dni)


cron