CSV file importeren

Status
Niet open voor verdere reacties.

Kligham

Gebruiker
Lid geworden
7 jan 2009
Berichten
389
Okido,

Ik moet een .csv bestand in mijn mysql database kunnen importeren. Nu is het zo dat ik problemen ondervind, nl. het werkt niet, ik krijg telkens lege velden:

Zo ziet mijn database eruit:

6 velden:

start_ip
end_ip
start
end
cc
cn

EDIT: Ik heb een pic van mijn database geupload.

Nu moet ik daar een .csv bestand importeren, hier een voorbeeld van de info dier daar te vinden is:

2.6.190.56,"2.6.190.63","33996344","33996351","GB","United Kingdom"
3.0.0.0,"4.17.135.31","50331648","68257567","US","United States"
4.17.135.32,"4.17.135.63","68257568","68257599","CA","Canada"
4.17.135.64,"4.17.142.255","68257600","68259583","US","United States"
4.17.143.0,"4.17.143.15","68259584","68259599","CA","Canada"
4.17.143.16,"4.18.32.71","68259600","68296775","US","United States"
4.18.32.72,"4.18.32.79","68296776","68296783","MX","Mexico"
4.18.32.80,"4.18.40.135","68296784","68298887","US","United States"
4.18.40.136,"4.18.40.143","68298888","68298895","CA","Canada"
4.18.40.144,"4.18.65.255","68298896","68305407","US","United States"
4.18.66.0,"4.18.67.255","68305408","68305919","MX","Mexico"
4.18.68.0,"4.18.100.31","68305920","68314143","US","United States"
4.18.100.32,"4.18.100.39","68314144","68314151","CA","Canada"
4.18.100.40,"4.19.162.143","68314152","68395663","US","United States"
4.19.162.144,"4.19.162.151","68395664","68395671","CA","Canada"
4.19.162.152,"4.20.73.15","68395672","68438287","US","United States"
4.20.73.16,"4.20.73.31","68438288","68438303","CA","Canada"
4.20.73.32,"4.23.128.183","68438304","68649143","US","United States"
4.23.128.184,"4.23.128.191","68649144","68649151","CA","Canada"
4.23.128.192,"4.37.0.255","68649152","69533951","US","United States"

Zoals je waarschijnlijk al zult doorhebben :p, is dat je 6 onderdelen hebt (onderbroken door spaties) en dat die in de tabellen moeten komen, in de volgorde die al eerder werd opgegeven.

Ter info: er werd vermeld dat ik de volgende dinskes moest aanpassen:

velden beendigd door ,
lijnen beendigd door \n

+ het originele CSV file was 8MB, heb dit dus moeten splitsen in 6 2MB CSV files

Hoe dan ook, ik krijg steeds de volgende foutmelding:

Invalid field count in CSV input on line 1.

=> Kan mij iemand hier aub bij helpen, anders krijg ik die Geolite langs geen kanten aan de praat.

EDIT: weet er iemand toevallig ook een oplossing om de upload limiet van een csv file van 2014 KB om te zetten naar 8000 KB?
 
Laatst bewerkt:
Bij mij doet ie et gewoon als ik 'lijnen beëindigd door' gewoon op 'auto' laat staan...

Probeer dat eens?
 
Bij mij doet ie et gewoon als ik 'lijnen beëindigd door' gewoon op 'auto' laat staan...

Probeer dat eens?

Mercikes, werkt volledig! Weet je toevallig ook hoe ik die limiet van 2014 KB kan verhogen tot 8000 KB?
 
Ben toch nog op iets nieuws gestoten. Ik wil namelijk mijn database uitbreiden met een image_path om later een foto te laten displayen. Mijn DB ziet eruit als de upgeloade foto. Nu heb ik een csv file gemaakt met daarin alle verwijzingen naar de foto's (ook csv als xls geupgeload). Maar ik krijg de volgende melding:

Fout

SQL-query:

INSERT INTO `cc` ( `image_path` )
VALUES (
'C:/wamp/vetweb/images/landen/United Kingdom.png'
)

MySQL retourneerde: Documentatie
#1062 - Duplicate entry '255' for key 'PRIMARY'

Bij de import functie heb ik enkel de velden beendigd door , verandert en kolom namen -> image_path
 

Bijlagen

Wat is je primary key?

Zo te zien zijn je unieke sleutels op :)

Zorg altijd dat je Primary Key groot genoeg is om alle waarden te bevatten... maak er een INT van ipv een TINYINT :)
 
Wat is je primary key?

Zo te zien zijn je unieke sleutels op :)

Zorg altijd dat je Primary Key groot genoeg is om alle waarden te bevatten... maak er een INT van ipv een TINYINT :)

Primary key (te zien op de pic DB1). De tinyint mag geen probleem zijn aangezien hij maar 238 rows bevat. Wat ik daarnet had opgemerkt dat er wel een aantal image_path waren toegevoegd VANAF 238, dus van 239-255!!! Dit zou normaal gezien toch niet mogen.

Hetgeen ik wil is dat die excel file normaal gezien ook 238 rows bevat, dat hij ze dus gewoon row per row kopieert in mijn database in dezelfde volgorde). Maar zoals het nu blijkt begint hij maar image_path toe te voegen aan row 239 waar in de andere culoms geen info staat. (zie foto Probleem).

Het eindresultaat zou eigenlijk moeten overeen komen zoals mijn snel in elkaar geflanste pic Eindresultaat
 

Bijlagen

  • DB1.jpg
    DB1.jpg
    86 KB · Weergaven: 33
  • DB2.jpg
    DB2.jpg
    41,5 KB · Weergaven: 39
  • Probleem.png
    Probleem.png
    86,4 KB · Weergaven: 52
  • Eindresultaat.jpg
    Eindresultaat.jpg
    102,1 KB · Weergaven: 53
Laatst bewerkt:
Tsjah, de import CSV functie vult hele rijen... wat je moet doen is de imagepath toevoegen ín de oude CSV, zodat alle informatie in 1 file staat, dan de tabel leeggooien en vervolgens opnieuw importeren.

Anders moet je een PHP import script maken die de plaatjes in volgorde toevoegd, en die zelf de update-id meegeeft.
 
Tsjah, de import CSV functie vult hele rijen... wat je moet doen is de imagepath toevoegen ín de oude CSV, zodat alle informatie in 1 file staat, dan de tabel leeggooien en vervolgens opnieuw importeren.

Anders moet je een PHP import script maken die de plaatjes in volgorde toevoegd, en die zelf de update-id meegeeft.

Tis gelukt:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan