Ik zit me al een aantal uurtjes gek te zoeken op iets waar ik maar niet uitkom.
Eerst en vooral heb ik twee tabellen:
Tabel Bikes
----------------
met velden ID(auto increment), fil_id, serialnr
Tabel fils
----------------
met velden ID(auto increment), postalcode, fname, address
Hetgeen ik wil doen is een lijst met een heleboel serienummers(serialnr) en hun bijbehorend filiaal(fname) rechtstreeks in de database inputten deze lijst is een .csv bestand, het importeren is geen probleem maar de juiste query om dit op een goede en nette manier te doen krijg ik niet voor elkaar.
Wat ik momenteel heb..
while(($data = fgetcsv($handle, 2000, ";")) !== FALSE)
{
//$data = str_replace("\r","\n",str_replace("\r\n","\n",$data));
print_r ($data);
$import = "INSERT INTO bikes(fil,serialnr)
SELECT fils.fname, bikes.serialnr
FROM bikes
INNER JOIN fils ON fils.fname = bikes.id
SET
bikes.serialnr = '$data[0]',
bikes.fil = '$data[1]'
WHERE (fils.fname = bikes.fil)
";
mysql_query($import) or die (mysql_error());
Er staat nog wat code achter en na maar dat is niet van belang hier..
Het belangrijkste stukje is waar de query begint uiteraard..
De query die er nu staat werkt natuurlijk helemaal niet maar het is maar om te tonen in welke richting ik dit wil.
Alvast hartelijk bedankt om te willen helpen :)
Vriendelijke Groeten!
?
Onbekende gebruiker
18-11-2010 14:15
Hoezo sla je de naam van het filiaal ook op bij de fiets? Dat klopt niet. Het id van het filiaal opslaan is voldoende. Anders heb je redunantie.
ik had immers gehoopt dat het zo gemakkelijk ging zijn maar helaas..
Als ik dat gebruik in mijn while loop om die csv te importeren krijg ik dit als reactie
Array ( [0] => 215 [1] => AALST MAIL ) 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 'MAIL' at line 2
Was al lichtjes verheugd dat het met een simpelere query dan diegene waar ik mee bezig was ging lukken..
Toch bedankt.. ik probeer nog wat verder..
Edit: Ohjah misschien helpt dit ook wel.
In de csv heb ik 2 kolommen in php $data[0] & $data[1].
De data daar ziet er uit zoals dit
Kolom 1(Serienr) Kolom 2 (Aalst Mail)
---- ----------
215 AALST MAIL
251 AALST MAIL
253 AALST MAIL
254 AALST MAIL
259 AALST MAIL
260 AALST MAIL
Nogmaals bedankt!
262 AALST MAIL
264 AALST MAIL
?
Onbekende gebruiker
18-11-2010 15:02
Misschien is het effe handig om de query te echo-en. Dan kan je zien hoe die eruit ziet en dus wat er mis gaat...
Ik verwacht dat je gewoon de query hierboven over hebt genomen zonder er verder naar te kijken en dus quotes mist. Verder vraag ik mij ook af waarom je in feite zo moeilijk doet. Als je weet dat al die fietsen bij dat filiaal horen, dan kan je dat ook hard coded doen.