Ik zou bij de installatie van mijn project een 1500 tal landen en plaatsen standaard in mijn systeem willen inladen, ze moeten dus in 2 tabellen komen te staan, tblPlaats en tblLand.
Nu is het probleem dat ik niet weet hoe je met 1 query die 1500 records kan toevoegen als ik de tabel exporteer in phpmyadmin en dat dan gebruik (dan krijg ik 1500 keer onder elkaar insert into... dan gaat dit niet.
Is er een mogelijke manier om toch nog die 1500 landen / plaatsen te inserten in de code en dt zonder 1500 verschillende query's te moeten maken en te moeten uitvoeren?
opslaan naar een file.
Dan op je host een php scriptje maken dat via een while loop telkens een regel leest die query't en dan opnieuw begint maar een regel lager.
Ik heb het hele mysql gebeuren naar een .txt getransformeerd en alle commentaar verwijderd, en dan een scriptje gemaakt dat elke regel uit het tekstbestand leest en in een array steekt. het was simpelder dan ik dacht, maar toch bedankt aan iedereen die antwoordde!
//Bestand landenPlaatsen.txt exclusief openen om te lezen
$bestand=fopen ("landenPlaatsen.txt","r");
//Met file elke regel in het bestand in de array $regel plaatsen
$regel=file("landenPlaatsen.txt");
//dmv een for loop elke plaats in de array aflopen (arraygroote=sizeof($regel)
for($t=0;$t<sizeof($regel);$t++){
mysql_query($regel[$t]) or die("Kan regel ".$t." niet uit het bestand lezen");
}
//Bestand vrijgeven
fclose($bestand);
//Bestand landenPlaatsen.txt exclusief openen om te lezen
Thomas - 22/05/2005 19:04 (laatste wijziging 22/05/2005 19:05)
Moderator
Het "probleem" zit hem in het feit dat mysql_query() maar één query als (tekst-)parameter accepteert. Je kunt dus niet meerdere queries in één string proppen en deze dan in één keer uitvoeren met één mysql_query() statement.
Wat je volgens mij wèl kunt doen, is het volgende:
@FangorN:
Ja inderdaad, maar als je dan een quote-fout hebt gemaakt, is het wel een halfuur zoeken, omdat hij gewoon bij $query een fout geeft.
Dan kun je toch beter die methode van hem zelf doen, omdat hij dan een meer gedetailleerde fout geeft.
@Legolas:
dat snap ik ook, maar het werd gevraagd (meerdere inserts in één query).
Vroeger of later zul je het waarschijnlijk wel leren dat het gewoon antwoord geven op de vraag efficiënter is/werkt dan iemand proberen uit te leggen hoe het beter kan. Dat (hoe iets beter kan) werd namelijk niet gevraagd... De vragensteller heeft in veel gevallen ook niets aan dit "antwoord".