Oneindige While loop van uit de DB

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marijn kok

marijn kok

08/02/2013 09:59:04
Quote Anchor link
Beste,

Vandaag ging ik verder met programmeren, en toen deed een while(); loop het opeens niet meer.
Ik haal 3records op uit de DB (Alles wat er in die tabel staat). En dan weergeeft hij de eerste record oneindig weer. En dan crashed mijn browser.

Ik snap er werkelijk waar niks van, ik heb een goede error afhandeling voor mijn query en code.

Mijn query:
Quote:
$getLangQuery = "SELECT name FROM languages ORDER BY languages_id ASC";
$getLangQuery = mysql_query($getLangQuery);
if(!$getLangQuery) {
echo 'Couldn\'t retrieve the languages';
} else {


Mijn while loop:
Quote:
$getLangFetch = mysql_fetch_assoc($getLangQuery);
while($getLangFetch) {
echo "<option value='".$getLangFetch['name']."'>".$getLangFetch['name']."</option>";
}


Als iemand mijn probleem kent. Zou ik het graag weten!
Verder heb ik u hopelijk genoeg info gegeven.

Met vriendelijke groeten,

Marijn
 
PHP hulp

PHP hulp

25/12/2024 05:50:27
 
- SanThe -

- SanThe -

08/02/2013 10:03:34
Quote Anchor link
Je while() staat nu op een array() en dat array() wordt niet leger dus een oneindige loop.

Niet:
$getLangFetch = mysql_fetch_assoc($getLangQuery);
while($getLangFetch) {

Maar:
while($getLangFetch = mysql_fetch_assoc($getLangQuery)) {
 
Erwin H

Erwin H

08/02/2013 10:03:52
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$getLangFetch
= mysql_fetch_assoc($getLangQuery);
while($getLangFetch) {
  echo "<option value='".$getLangFetch['name']."'>".$getLangFetch['name']."</option>";
}

?>

Dit is het probleem. Omdat je fetcht voor de while loop en er verder niets meer mee doet, blijft variabele $getLangFetch oneindig lang hetzelfde. Ofwel binnen de while loop nog een keer fetchen, ofwel de toewijzing aan $getLangFetch binnen je while loop conditie zetten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$getLangFetch
= mysql_fetch_assoc($getLangQuery);
while($getLangFetch) {
  echo "<option value='".$getLangFetch['name']."'>".$getLangFetch['name']."</option>";
  $getLangFetch = mysql_fetch_assoc($getLangQuery);
}


//of
while($getLangFetch = mysql_fetch_assoc($getLangQuery)) {
  echo "<option value='".$getLangFetch['name']."'>".$getLangFetch['name']."</option>";
}

?>
 
Marijn kok

marijn kok

08/02/2013 10:08:09
Quote Anchor link
Ahh bedankt!
Ik dacht zelf dat mijn manier netter was omdat Zend er een warning voor geeft, dus ik dacht dit was netter. En ik had dit gister ochtend gemaakt, en savonds (voor dat ik naar huis ging) nog aan gepast. Maar niet meer getest.

- Marijn
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.