PHP ładowanie pliku CSV do bazy MYSQL

0

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? będę wdzięczny za pomoc

2

Wrzuć kod w tagi i opisz gdzie zaczyna się problem.

0

nie wiem gdzie zaczyna się problem bo tak jak pisałem nie wyskakuje żaden błąd, problem jest w tym że nie działa a dla czego to może ktoś mądry zajrzy do tych plików co załączyłem i będzie wiedział

0

Obstawiam, że struktura kolumn w tabeli SQL jest inna iż dane, które jej tam zapodajesz.
Na początek przypisz sobie:
$ok = mysqli_query($con, $sql);
i wyświetl tę wartość, to zobaczysz, czy zapis poszedł jak trzeba.
Jeśli nie poszedł jak trzeba, to odczytaj jaki błąd ci wyskoczył:
$error = $con -> error;

0

dodałem bez żadnej reakcji, dobra poszukam na innym forum może ktoś się trafi kto kuma trochę php i mysql i będzie mu się chciało otworzyć załączony plik bo tam jest coś nie tak struktura tabeli jest identyczna bo plik najpierw został ręcznie zaimportowany do bazy przy użyciu phpmyadmin

2

Kurna gościu, nikt normalny nie będzie jakiegoś zipa od anonima w necie ściągał (i zajmuje to jeszcze dodatkowy cenny czas). Wrzuć kod w poście, to zerkniemy. Bo teraz nikt nie ma jak pomóc.

0
Dariusz Kamiński napisał(a):

dodałem bez żadnej reakcji

Co to znaczy bez żadnej rekacji?
Jaka wartość jest zwracana w wyniku wykonania operacji mysqli_query?
Jaki jest ostatni komunikat błędu dla $con?

0

po to jest możliwość dodawania plików na forum, może trzeba tą opcję skasować? tak jest szybciej i łatwiej tak działają wszystkie fora excla na których się udzielam i nikt się nie boi, ale ok przesyłam kod

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">
Import CSV file
CSV File:<input type="file" name="file" id="file">
<input type="submit" value="submit">
</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"; } } ?>
0

jeszcze raz

tak wygląda plik index.php

<form enctype="multipart/form-data" method="post" action="import_csv.php">
Import CSV file
CSV File:<input type="file" name="file" id="file">
<input type="submit" value="submit">
</form>
0

tak wygląda plik index.php

<form enctype="multipart/form-data" method="post" action="import_csv.php">
Import CSV file
CSV File:<input type="file" name="file" id="file">
<input type="submit" value="submit">
</form>
0

dziadowsko się coś wkleja

0

screenshot-20210328163334.png

0
Dariusz Kamiński napisał(a):

dziadowsko się coś wkleja

Użyj opcji wklejania kodu, masz na belce znaczek: </>

0

Ty chcesz wczytać "plik w locie" do bazy ?
Gdzie masz move_uploaded_file ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1