[php][mysql] in_array controle voor select lijst

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • akooi
  • Registratie: December 2000
  • Laatst online: 02:49
Voor een aanmeld systeem wil ik dat gebruikers een beschikbare vertrektijd kunnen selecteren uit een select lijst. De beschikbare tijden worden gegenereerd door gebruik te maken van resp. mktime en strftime. Dit werkt prima, alleen wil ik dat geboekte tijden uit de lijst verdwijnen. Ik gebruik hiervoor de in_array functie. Waarbij alleen de waarden getoond mogen worden die niet in de array staan.
Dit werkt echter niet. Alle tijden worden gewoon weergegeven, ook de tijden die al in de database staan.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$beginvertrek = mktime($startuur,$startmin,0,01,01,1970);
$eindvertrek = mktime($stopuur,$stopmin,0,01,01,1970);
 <? $resultGO = mysql_query("SELECT vertrektijd FROM agenda_aanmeld WHERE agenda_id = '$agenda_id' AND user_id <> 'user_ID'");
 while ($rowGO = mysql_fetch_array($resultGO))
  { extract($rowGO);  } ?>

  <select name="vertrektijdd" class="invoer">
    <option>kies vertrektijd</option>
<? 
for($mogelijketijd=$beginvertrek; $mogelijketijd <= $eindvertrek; $mogelijketijd=$mogelijketijd+$intervaltime)
{ $vertrek=strftime("%H:%M",$mogelijketijd); 
 if (!in_array($vertrek, $rowGO) print"<option value=\"$vertrek\">$vertrek</option>";
}?>
  </select>


Als ik de array via een while loop print staan de tijden er wel in...
Iemand een idee waar de fout zit?

[ Voor 8% gewijzigd door akooi op 23-03-2005 18:05 ]


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

ik gok dat dit beter werkt:
PHP:
1
2
3
4
5
$rowGO = array();
while ($row = mysql_fetch_array($resultGO))
{
  $rowGO[] = $row['vertrektijd'];
}

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • akooi
  • Registratie: December 2000
  • Laatst online: 02:49
Geweldig _/-\o_ 't werkt!
Hopelijk komt ie via de search og es weer van pas ;)

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Overigens is dit een stuk sneller:
PHP:
1
2
3
4
5
$rowGO = array();
while ($row = mysql_fetch_array($resultGO))
{
  $rowGO[$row['vertrektijd']] = 1;
}

en dan ipv in_array een isset($rowGO[$vertrek]) gebruiken :)

Intentionally left blank