Hoi,

Ik ga ergens de fout in maar zie niet direct waar..

Als iemand een hint/duw kan geven richting de goede manier dan ben ik een tevreden mens :).


foutmelding:
INSERT INTO clients(username, password, fil, phone, email) SELECT '1', '2', id FROM fils WHERE fils.postalcode = '3', '4', '5'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' '4', '5'' at line 2


--> Ik heb een aantal dingen weggedaan met nr's omdat er gevoelige info in staat.

Mijn stukje code dat dit zou moeten doen:

$import = "INSERT INTO clients(username, password, fil_id, phone, email)
						SELECT '$data[3]', '$data[4]', id FROM fils WHERE fils.postalcode = '$data[0]', '$data[1]', '$data[2]'";


Gegevens worden uit een .csv bestand geladen..

Kolom 1 uit de csv = postcode's
Kolom 2 uit de csv = telnr's
Kolom 3 uit de csv = emails
Kolom 4 uit de csv = usernamen
Kolom 5 uit de csv = paswoorden


Het gaat fout ergens om dat ik reeds een table heb in mysql waar alle postcodes in staan met elk hun uniek ID, en dat uniek ID wil ik in deze tabel krijgen..

Waarschijnlijk doe ik iets stoms ergens maar ik zie het niet direct..

Als iemand kan/wil helpen -> zeer geapprecieerd.


Vriendelijke Groeten!
Integers horen niet tussen quotes.
Leer sql: [google]sql where[/google].
Tja, het was te denken dat het iets stoms ging zijn..

$import = "INSERT INTO clients(username, password, fil_id, phone, email)
                        SELECT '$data[3]', '$data[4]', 'id FROM fils WHERE fils.postalcode = $data[0]', '$data[1]', '$data[2]'"; 


Dit werkt gedeeltelijk, juist het feit dat hij de id's niet uit de fils tabel haalt maar er gewoon 0 input..

dus het deeltje "id FROM fils WHERE fils.postalcode = $data[0]" doet het niet..

Simpel gezegd is dit toch "Het ID van de tabel fils waar fils.postcode data0 is..

Dus in principe zou het moeten werken maar doet hij niet.. mmmmm

Alvast wederom bedankt voor je snelle reactie Karl :-)

Groeten!
Voor id heb je een quote staan, die hoort daar niet.
Heb je al opgezocht hoe je precies een where doet?
Jah hoor dat heb ik gedaan, wist ik eerder ook al, in een select query kan ik bijna alle mogelijke combinaties uitvoeren..

Maar in een insert lukt het me niet.. men verstand reikt zo ver niet denk ik..

Die quote die er staat was maar ff om te testen en te zien wat dat exact deed.. (niet veel dus :p)

Dank voor de reactie wederom :)
Elio vp op 20/11/2010 16:40:57

Jah hoor dat heb ik gedaan, wist ik eerder ook al, in een select query kan ik bijna alle mogelijke combinaties uitvoeren..
(...)


Daar lijkt het niet op. Voer alleen maar eens die SELECT query uit.
Die werkt perfect,

als ik bijvoorbeeld gewoon

SELECT fils.id FROM fils WHERE fils.postalcode = 9000

Dan krijg ik netjes het kantoor ID terug..

Dus die werkt perfect
Want dat is ook een hele andere query dan de select query die je in je insert hebt.
Jah klopt eigenlijk wel, mijn select query is idd veel langer maar ik zou anders niet weten hoe ik die andere data vanuit die array kan inputten samen met die select query..

Als je daar ff mee kan helpen.. :-)

Hartelijk dank! en nogmaals bedankt voor jou reacties!!
De insert gaat rij voor rij. Dus de select gaat ook rij voor rij.
Waarom verschilt dan die select query van jou zoveel?
Kijk ook naar de where...
Die where kan sowieso nooit of te nimmer.
En dat ligt niet aan de insert, die geeft ook geen fout.
Mysql zegt toch dat de fout bij de where ligt.
Eerst gaf hij idd die fout aan..

Maar nadien gaf hij geen fout meer aan, maar hij voerde de where clausule niet uit..

Hij inputte gewoon telkens 0 in mijn fils_id kolom..

Als ik die select query uitvoer in phpmyadmin dan krijg ik netjes het result..

Het probleem ligt hem gewoon in de complete query, de insert & de select samen in 1 query krijg ik niet goed..

Ik ga nog wat verder knutselen..

Wederom bedankt!

Reageren