login  Naam:   Wachtwoord: 
Registreer je!
 Forum

While ... Do in MySQL

Offline bertenz - 10/09/2008 10:07
Avatar van bertenzHTML beginner Hallo allemaal,

Dit probleem komt eigenlijk doordat ik mijn MySQL server telkens overbelast raakt. Als oplossing op deze vraag (hier gesteld op SiMa) kreeg ik dat ik mijn query's moest optimaliseren. Daarom wil ik een While ... Do - loop in mijn INSERT query maken.

Wat ik wil is een variabel aantal records invoeren. Dit aantal is gelijk aan $i. $j wordt vóór de query gelijk gesteld aan 0. De code die ik nu heb is:
  1. mysql_query("INSERT INTO `".$team_id_long."_res_comp` (`match_date`, `match_thuis`, `match_uit`, `match_result`) VALUES
  2.  
  3. WHILE ".$j." < ".$i." DO
  4. IF ".$j." = ".$i." THEN
  5. ('".$team_res_array[$j]['match_date']."', '".$team_res_array[$j]['match_thuis']."', '".$team_res_array[$j]['match_uit']."', '".$team_res_array[$j]['match_result']."');
  6. ELSE
  7. ('".$team_res_array[$j]['match_date']."', '".$team_res_array[$j]['match_thuis']."', '".$team_res_array[$j]['match_uit']."', '".$team_res_array[$j]['match_result']."'),;
  8. END IF;
  9. SET ".$j." = ".$j." + 1;
  10. END WHILE;") OR die(mysql_error());

De foutmelding die ik telkens krijg is:
Citaat:
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 'WHILE 0 < 5 DO IF 0 = 5 THEN ('2008-09-07', 'DESK 8 ', 'SC Olymp' at line 3

Iemand enig idee wat ik fout doe? Ik dacht dat ik de query precies volgens de handleiding had gemaakt ... blijkbaar toch iets fout gedaan.
Alvast bedankt,

Bertenz

3 antwoorden

Gesponsorde links
Offline Kr4nKz1n - 10/09/2008 10:16
Avatar van Kr4nKz1n Onbekend Een normale if-statement met daar tussen de query`s lijkt mij logischer.
Offline Wim - 10/09/2008 13:37 (laatste wijziging 10/09/2008 13:37)
Avatar van Wim Crew algemeen zoiets zou ik ook door PHP laten doen ipv door mysql....

verder; op lijn 7 heb je nog een , staan voor je ;.

//edit:
nu snap ik dit topic al wat meer: http://www.sitemasters.be/forum/2/30372
^^
Offline bertenz - 10/09/2008 19:33
Avatar van bertenz HTML beginner Daar komt mijn probleem inderdaad vandaan. Zou ik door deze manier minder snel de MySQL-server overbelasten?

Dat If-statement hoeft er eigenlijk niet meer tussen, als ik maar weet hoe ik meerdere records kan invoeren met deze while-do-loop. Die komma stond er met opzet nog voor de ";" omdat ik dacht dat het door komma's gescheiden moest worden, dus vandaar dat er dan achter een record in de loop ook een komma moest.
Iemand die me kan helpen met dit variabel aantal records invoeren? Alvast bedankt.

Bertenz
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.176s