PHP ładowanie pliku CSV do MYSQL

PHP to skryptowy język wykonywany po stronie serwera. Forum przeznaczone na pytania dot. programowania obiektowego, wzorców projektowych itp.
Awatar użytkownika
darko2000
Posty: 1
Rejestracja: 28 mar 2021, 16:36

PHP ładowanie pliku CSV do MYSQL

Post autor: darko2000 » 28 mar 2021, 16:45

Witam

mam plik wyeksportowany z Excela atrakcje.csv (załączony) mam bazę "ezwiedzanie" w niej tabelę "atrakcje" chciałbym za pomocą np formularza wybrać plik i załadować do istniejącej tabeli "atrakcje" najlepiej żeby podmieniało dane plik atrakcje.csv co miesiąc będzie większy, w internecie znalazłem coś takiego formularz jest w pliku index.php (załączony) a program w import_csv.php (załączony) przerobiłem go na swoje potrzeby ale oczywiście nie działa nawet nie wyrzuca błędu, może coś źle przerobiłem (jestem początkujący) a może ktoś ma gotowy w 100% działający taki kod php? oczywiście ręcznie w phpmyadmin ładuje się plik atrakcje.csv bez problemu, będę wdzięczny za pomoc

słabo że nie da się dodać pliku

tak wygląda CSV:
nr_atr;nazwa;adres;miasto;strona;rodzaj
A0000001;Atrakcja 1;Adres 1;Miasto 1 ;http://www.adre1.pl;rodzaj 1
A0000002;Atrakcja 2;Adres 2;Miasto 2 ;http://www.adre2.pl;rodzaj 2
A0000003;Atrakcja 3;Adres 3;Miasto 3 ;http://www.adre3.pl;rodzaj 3

tak wygląda plik index.php
<form enctype="multipart/form-data" method="post" action="import_csv.php">
<table border="1">
<tr >
<td colspan="2" align="center"><strong>Import CSV file</strong></td>
</tr>
<tr>
<td align="center">CSV File:</td><td><input type="file" name="file" id="file"></td></tr>
<tr >
<td colspan="2" align="center"><input type="submit" value="submit"></td>
</tr>
</table>
</form>

tak wygląda plik import_csv.php:
<?php
if(isset($_POST["submit"]))
{
$host="localhost"; // Host name.
$db_user="root"; //mysql user
$db_password=""; //mysql pass
$db='ezwiedzanie'; // Database name.
//$conn=mysql_connect($host,$db_user,$db_password) or die (mysql_error());
//mysql_select_db($db) or die (mysql_error());
$con=mysqli_connect($host,$db_user,$db_password,$db);
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}


echo $filename=$_FILES["file"]["name"];
$ext=substr($filename,strrpos($filename,"."),(strlen($filename)-strrpos($filename,".")));

//we check,file must be have csv extention
if($ext=="csv")
{
$file = fopen($filename, "r");
while (($emapData = fgetcsv($file, 10000, ",")) !== FALSE)
{
$sql = "INSERT into tableName(nr_atr,nazwa,adres,miasto,strona,rodzaj) values('$emapData[0]','$emapData[1]','$emapData[2]','$emapData[3]','$emapData[4]')";
mysqli_query($con, $sql);
}
fclose($file);
echo "CSV File has been successfully Imported.";
}
else {
echo "Error: Please Upload only CSV File";
}


}
?>

ODPOWIEDZ