login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Importeren in MySQL

Offline Juser - 21/04/2006 12:12
Avatar van JuserMySQL interesse Ik wil graag een *.csv bestand kunnen importeren in een database, maar ik zou zo eerlijk gezegd niet weten hoe.. Heb al vanalles gezocht maar kan niks vinden wat er ook maar iets op lijkt. Kan dit wel??

9 antwoorden

Gesponsorde links
Offline Gerard - 21/04/2006 12:14
Avatar van Gerard Ouwe rakker Een csv bestand (Comma Seperated Values File) bestaat dus uit data op 1 enkele regel waarbij alles gescheiden wordt door een komma.

Je zou dus goed uit de voeten moeten kunnen met file() en explode()
Offline Juser - 21/04/2006 12:36
Avatar van Juser MySQL interesse Zou het mogelijk niet makkelijker zijn om dan een *.xls te importeren?
Offline Richard - 21/04/2006 12:36
Avatar van Richard Crew algemeen PHP.net: fgetcsv

lijkt me iets handiger;)
Offline Juser - 21/04/2006 14:42 (laatste wijziging 21/04/2006 14:44)
Avatar van Juser MySQL interesse Ok, ben ff bezig geweest.
Wat ik zou willen: De gegevens van het test.csv bestand importeren in een database.

Maar ik krijg nu telkens de melding "Query was empty", dit terwijl er wel data in het test.csv bestand staat. En er wordt dus ook niks in de tabel 'adressen' bijgeschreven. Wat doe ik fout?

code:
  1. <?
  2.  
  3. $link = mysql_connect("localhost", "", "") or die("Could not connect: ".mysql_error());
  4. $db = mysql_select_db("database") or die(mysql_error());
  5.  
  6. $row = 0;
  7. $handle = fopen ("test.csv","r");
  8.  
  9. WHILE ($data = fgetcsv ($handle, 1000, ","))
  10. {
  11.  
  12. $result = mysql_query($sql) or die(mysql_error());
  13. $sql = "INSERT INTO adressen(id,voornaam,tussenvoegsel,achternaam,adres,huisnummer,huisnummertoevoeging,postcode,woonplaats,telefoon,fax,email)
  14. VALUES('".$row."','".$data[0]."','".$data[1]."','".$data[2]."','".$data[3]."','".$data[4]."','".$data[5]."','".$data[6]."','".$data[7]."','".$data[8]."','".$data[9]."','".$data[10]."','".$data[11]."','".$data[12]."')";
  15. $result = mysql_query($query) or die("Invalid query: " . mysql_error().__LINE__.__FILE__);
  16. $row++;
  17. }
  18. fclose ($handle);
  19. ?>
Offline timo - 21/04/2006 15:52
Avatar van timo PHP ver gevorderde doe is while(($data = fgetcsv($handle,1000)) !== FALSE ) (die , is toch standaard...)
zo staat net nl. op de php.net manual...
Offline Juser - 21/04/2006 16:43 (laatste wijziging 21/04/2006 17:06)
Avatar van Juser MySQL interesse Daardoor verandert er niks, tenminste niet bij mij. Ik heb me ondertussen helemaal wezenloos gezocht naar een fatsoenlijke tut. hierover, maar kan niks vinden. Is hier niet een eenduidig script voor of zoiets???
Offline Gerard - 21/04/2006 17:09
Avatar van Gerard Ouwe rakker je eerste id veld krijgt zowiezo een 0 als waarde mee omdat je de variabele nog niet opgehoogt hebt, dat is ook niet goed
Offline Rens - 21/04/2006 17:12
Avatar van Rens Gouden medaille

Crew algemeen
Uhm, nogal logisch dat je die melding krijgt...
Je zet je query in de var $sql, en je probeert de var $query uit te voeren...

:s
Offline Juser - 26/04/2006 14:52
Avatar van Juser MySQL interesse Ik heb het vorige script aan de wilgen gehangen omdat ik er niet uit kwam, heb wat gezocht op Internet en 't volgende script gevonden:

  1. <?
  2. #connect met de database komt hier.
  3.  
  4. $fcontents = file ('./test.csv');
  5.  
  6. for($i=0; $i<sizeof($fcontents); $i++)
  7. {
  8. $line = trim($fcontents[$i]);
  9. $arr = explode(";", $line);
  10.  
  11. $sql = "insert into TABLENAME values ('". implode("','", $arr) ."')";
  12. mysql_query($sql);
  13. echo $sql ."<br>\n";
  14. if(mysql_error()) {
  15. echo mysql_error() ."<br>\n";
  16. }
  17. }
  18. ?>


Maar nu is mijn vraag; ik heb deze code in een apart bestand staan toevoeging.php, en het bestand toevoegen.php is een formulier waarin ik de bestandslokatie moet invullen, maar hoe krijg ik het zover dat $fcontents = file ('./test.csv'); ook verwijst naar dit invoerveld?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.212s