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
Wrzuć kod w tagi i opisz gdzie zaczyna się problem.
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ł
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;
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
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.
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
?
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"> |
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"; } } ?>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"> |
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"> |
dziadowsko się coś wkleja
Dariusz Kamiński napisał(a):
dziadowsko się coś wkleja
Użyj opcji wklejania kodu, masz na belce znaczek: </>
Ty chcesz wczytać "plik w locie" do bazy ?
Gdzie masz move_uploaded_file
?