Toon posts:

[PHP+MySQL] Dubbel?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb de volgende code:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
$sql = "SELECT * FROM product";
$result = mysql_query($sql);
?> 
   <optgroup label="Select Product ">
<?
          while ($row = mysql_fetch_object($result)){
            if($row->type == "application"){
              echo "    <option value=\"$row->id\">$row->naam</option><br>\n";
            }
          }
?>
    </optgroup>
    <optgroup label="Select Addon">
<?
          while ($row = mysql_fetch_object($result)){
            if($row->type == "addon"){
              echo "    <option value=\"$row->id\">$row->naam</option><br>\n";
            }
          }
?>
    </optgroup>


Nou is t probleem dat hij alleen bij de eerste while(etc) mijn gegevens uit de database haalt, bij de 2e niet, als ik dan de 1e weghaal, dan geeft ie de 2e wel weer. Hoe kan ik dit probleem oplossen, dat ik ze allebei weergeef?

bvd

  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 30-08 08:07

PowerSp00n

There is no spoon

Je kan natuurlijk ook je query iets anders maken. Maar anders kon het volgensmij met dit: http://www.php.net/manual/en/function.mysql-free-result.php. Weet niet helemaal zeker....

  • ^Mo^
  • Registratie: Januari 2001
  • Laatst online: 04-11-2025
PowerSp00n schreef op 07 september 2002 @ 23:25:
Je kan natuurlijk ook je query iets anders maken. Maar anders kon het volgensmij met dit: http://www.php.net/manual/en/function.mysql-free-result.php. Weet niet helemaal zeker....
Het probleem is dat na de eerste while loop de internal result pointer na het laatste record staat, en als je dan met de zelfde resultset opnieuw een loop ingaat dan zal je geen resultaten vinden.
Na de eerste while loop zal je de internal result pointer op de eerste record moeten zetten:
PHP:
1
    mysql_data_seek( $Result, 0);
En dat is niet wat free_result doet:
mysql_free_result() will free all memory associated with the result identifier result.

"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

even mijn twijfels over je idee achterwege gelaten... ;)

code:
1
2
3
4
$array = array ();
while ( $row = mysql_fetch_assoc ( $result ) ) {
   $array [] = $row;
}

zet 't eerst in een array :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
_Mo_ schreef op 07 september 2002 @ 23:34:
[...]

Het probleem is dat na de eerste while loop de internal result pointer na het laatste record staat, en als je dan met de zelfde resultset opnieuw een loop ingaat dan zal je geen resultaten vinden.
Na de eerste while loop zal je de internal result pointer op de eerste record moeten zetten:
PHP:
1
    mysql_data_seek( $Result, 0);
En dat is niet wat free_result doet:

[...]
Ej hartstikke bedankt, dit is inderdaad de oplossing. Nu kan ik weer verder gaan :)

  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 17-08 15:34
Lijkt me handig om nog eens naar de post van drm te kijken, want het is niet echt economisch wat je doet.

Ik blijf er iig vrij nuchter onder....

Pagina: 1