[PHP] 1e waarde niet zichtbaar in dropdownmenu

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • squaddie
  • Registratie: Februari 2000
  • Laatst online: 14-09 13:14
Ik heb het volgende probleem dat de eerste waarde (Jan) uit de database niet in het dropdown-menutje komt, ook na diverse zoekpogingen bij de bekende sites heb ik nog steeds niet de oplossing van dit probleem.

Dit stukje script is een onderdeel van de pagina, maar zelfs als ik de pagina opvraag met alleen dit stukje PHP dan valt de eerste waarde weg. Er komen geen foutmeldingen voorbij.

Het is absoluut geen moeilijk stukkie script, maar ik kan de fout niet vinden.

MYSQL-database met de tabel role en ziet er als volgt uit:

id | name
------------
1 | Jan
2 | Piet
3 | Klaas
4 | Miep

PHP:
1
2
3
4
5
6
7
8
9
10
  mysql_pconnect("localhost");
  mySQL_select_db("box") or die("Could not open selected database");
  $result=mysql_query("SELECT * FROM role");
  $rows = mysql_fetch_array($result);
  echo "<select name='roles'>";
  while($rows = MySQL_fetch_array($result))
  {
    echo "<option value=".$rows[0].">".$rows[1]."</option>";
  }
  echo "</select>";

There are never enough hours in a day, but always too many days before saturday.


Acties:
  • 0 Henk 'm!

Verwijderd

Ik denk dat de fout zit bij het feit dat je 2x mysql_fetch_array doet...

en je kan beter $rows['veldnaam'] doen ipv $rows[0],....

Acties:
  • 0 Henk 'm!

  • 4Real
  • Registratie: Juni 2001
  • Laatst online: 14-09-2024
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
  mysql_pconnect("localhost"); 
  mySQL_select_db("box") or die("Could not open selected database"); 
  $result=mysql_query("SELECT * FROM role"); 

  echo "<select name='roles'>"; 
  while($rows = MySQL_fetch_array($result)) 
  { 
    echo "<option value=".$rows[id].">".$rows[name]."</option>"; 
  } 
  echo "</select>";
?> 

Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 20:50
Je roept mysql_fetch_array() twee maal aan. Bij de eerste, $rows = mysql_fetch_array($result); , word die interne pointer 1 opgeschoven naar de volgende element in de array. Je zult om ook "Jan" tevoorschijn te toveren eerste de array $result moeten resetten. Dat doe je met de functie "reset()"

Acties:
  • 0 Henk 'm!

  • squaddie
  • Registratie: Februari 2000
  • Laatst online: 14-09 13:14
* squaddie Goede morgen... :Z

Het is inderdaad niet handig twee keer die fetch_array aan te roepen.

Stom dat ik die niet gezien heb, maar bedankt voor het vinden van de fout. :)

There are never enough hours in a day, but always too many days before saturday.