MySQL-tabel vullen met gedeelte van de cellen

Status
Niet open voor verdere reacties.

mariannevanh

Terugkerende gebruiker
Lid geworden
14 dec 2004
Berichten
2.085
Ik heb een MySQL-tabel die ik via phpMyAdmin kan benaderen. Die tabel heeft (als voorbeeld) de cellen naam, adres, postcode, woonplaats, telefoon.
Nu heb ik ook een CSV-bestand met (in hetzelfde voorbeeld) naam, woonplaats, telefoon.

Hoe kan ik in phpMyAdmin de tabel vullen met dit CSV-bestand?

Vriendelijke groet,
Guido
 
Heb je al geprobeerd deze importeren? Dat zijn een hoop mogelijkheden voor in phpMyAdmin.


Persoonlijk vind ik phpMyAdmin zeer matig vanwege de upload en POST limits, en raad liever HeidiSQL aan als de MySQL-server vanaf buitenaf bereikbaar is.
 
Laatst bewerkt:
PHP4U, dankjewel voor je reactie.

Heb je al geprobeerd deze importeren? Dat zijn een hoop mogelijkheden voor in phpMyAdmin.

Ja, dan krijg ik deze foutmelding:
Code:
Verkeerd aantal kolommen in CSV-invoer op regel 1.

Persoonlijk vind ik phpMyAdmin zeer matig vanwege de upload en POST limits, en raad liever HeidiSQL aan als de MySQL-server vanaf buitenaf bereikbaar is.
Het zijn een van de weinige werkzaamheden die ik "aan de achterzijde" moet uitvoeren. Daarom denk ik dat het niet verstandig is nu moeite te steken in de implementatie van HeidiSQL.
 
Je CSV heeft niet dezelfde aantal kolommen als die de table heeft.
 
Je CSV heeft niet dezelfde aantal kolommen als die de table heeft.

Ja, dat weet ik. Daarom vroeg ik ook naar een mogelijkheid om de waarden uit de CSV in het juiste veld in te lezen. En dan wel op zo'n manier dat de velden woonplaats en telefoon in de respectievelijke velden woonplaats en telefoon terecht komen.

Ik denk aan iets als:
Code:
LOAD DATA LOCAL INFILE 'data.csv' INTO TABLE data[code]

evt. gevolgd door: [code]FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'

maar wat zet ik daarachter?
Code:
(@ID,@Plaats,@Longitude (Lengte),@Latitude (Breedte),@Aantekeningen) set name=@col4,id=@col2 ;
 
CSV inlezen in Excel.
2 lege kolommen invoegen na kolom Naam (dan heb je in totaal 5 kolommen waarvan 2 lege kolommen).
(optioneel) helemaal bovenaan in de Excel sheet een rij invoegen en op die rij zet je de teksten: naam, adres, postcode, woonplaats, telefoon
Selecteer de 5 kolommen en geef bij Celeigenschappen op dat het "tekst" is.
Dan exporteer je de Excel sheet als een CSV bestand die je in phpMyAdmin kan inlezen.

Let bij het exporteren op het juiste scheidingsteken (tussen de velden) en de juiste quotes (per veld)
 
Laatst bewerkt:
Dankjewel Bron, maar ik heb al zoiets uitgeprobeerd.
De tabel in CSV-vorm blijkt te downloaden te zijn van deze website.
Het euvel zit 'm volgens mij in de lange omschrijving waarin een CR/LF zit. Bij het inlezen in Excel zie je dat regel 2 en volgende van de lange tekstvelden worden ingelezen in kolom A, hetgeen niet de bedoeling is.

Ook zitten er nogal veel diacritische tekens in die door Excel niet goed worden ingelezen.

Het is me nog niet gelukt dit op te lossen.
 
Laatst bewerkt:
Gisteren vond ik een editor waarin ik tekstbestanden kan inlezen waarmee ik ook de lay-out/structuur van de kolommen kan veranderen.
De MySQL-database ziet er als volgt uit:
plaatsen_structuur.PNG

Als ik de CSV-file vervolgens probeer te importeren, lijkt het erop dat het importeren goed gaat, maar na enige tijd krijg ik toch een foutmelding:
#1366 - Incorrect integer value: 'ID' for column 'ID' at row 1

Wat doe ik fout?

Vriendelijke groet,
Guido
 
Je hebt in de database opgegeven dat ID van type int is, terwijl in de CSV alle velden een tekstveld zijn
"Plaats","Longitude (Lengte)","Latitude (Breedte)","Aantekeningen","ID"
 
Dankjewel Bron.
Een van de andere problemen was wellicht ook dat de eerste regel van mijn document de veldnamen bevatte, terwijl het veld ID uiteraard alleen een nummer kan zijn en niet "ID".
Het probleem is nu opgelost.
Ook PHP4U bedankt voor het meedenken.

Vriendelijke groet,
Guido
 
Mocht je een schoon bestand willen hebben

. Replace <br />\r\n in <br /> (overbodige newline \r\n weggehaald)
. Trim trailing spaces + Remove empty lines

Het bestand heb ik op deze locatie (klik) gezet.
Bij een Excel import bleken 2x <br /> in latitude te staan, heb ik weggehaald.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan