Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Gotowe rozwiązania _ PHP ładowanie pliku CSV do MYSQL

Napisany przez: darko2000 1.04.2021, 21:20:13

Witam
mam plik wyeksportowany z Excela atrakcje.csv to jest struktura:

http://php.net/

mam bazę o nazwie "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 :

  1. [/php]
  2. <form enctype="multipart/form-data" method="post" action="import_csv.php">
  3. <table border="1">
  4. <tr >
  5. <td colspan="2" align="center"><strong>Import CSV file</strong></td>
  6. </tr>
  7. <tr>
  8. <td align="center">CSV http://www.php.net/file:</td><td><input type="file" name="file" id="file"></td></tr>
  9. <tr >
  10. <td colspan="2" align="center"><input type="submit" value="submit"></td>
  11. </tr>
  12. </table>
  13. </form>
  14. [php]


a program w import_csv.php

  1. [/php]
  2. <?php
  3. if(http://www.php.net/isset($_POST["submit"]))
  4. {
  5. $host="localhost"; // Host name.
  6. $db_user="root"; //mysql user
  7. $db_password=""; //mysql pass
  8. $db='ezwiedzanie'; // Database name.
  9. //$conn=mysql_connect($host,$db_user,$db_password) or die (mysql_error());
  10. //mysql_select_db($db) or die (mysql_error());
  11. $con=mysqli_connect($host,$db_user,$db_password,$db);
  12. // Check connection
  13. if (mysqli_connect_errno())
  14. {
  15. http://www.php.net/echo "Failed to connect to MySQL: " . mysqli_connect_error();
  16. }
  17.  
  18.  
  19. http://www.php.net/echo $filename=$_FILES["file"]["name"];
  20. $ext=http://www.php.net/substr($filename,http://www.php.net/strrpos($filename,"."),(http://www.php.net/strlen($filename)-http://www.php.net/strrpos($filename,".")));
  21.  
  22. //we check,file must be have csv extention
  23. if($ext=="csv")
  24. {
  25. $file = http://www.php.net/fopen($filename, "r");
  26. while (($emapData = http://www.php.net/fgetcsv($file, 10000, ",")) !== FALSE)
  27. {
  28. $sql = "INSERT into tableName(nr_atr,nazwa,adres,miasto,strona,rodzaj) values('$emapData[0]','$emapData[1]','$emapData[2]','$emapData[3]','$emapData[4]')";
  29. mysqli_query($con, $sql);
  30. }
  31. http://www.php.net/fclose($file);
  32. http://www.php.net/echo "CSV File has been successfully Imported.";
  33. }
  34. else {
  35. http://www.php.net/echo "Error: Please Upload only CSV File";
  36. }
  37.  
  38.  
  39. }
  40. ?>
  41. [php]


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 bez problemu, będę wdzięczny za pomoc

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)