Avatar billede mydream Nybegynder
04. maj 2005 - 13:21 Der er 3 kommentarer og
1 løsning

Loope indenfor en while

Jeg er ved at lave et bookingsystem, og jeg skal vise en kalender med alle tider fra 8-23 f.eks. på en given mandag. I alle felterne skal der enten stå ledig eller optaget. I min database ligger bookingerne, og hvis ikke alle tider er fuldstændig optaget, kan jeg ikke bare køre en while, da den jo kun kører de tider igennem, der ligger i databasen. Jeg har skrevet:


$Senestetid = '08:00:00';

$resMan = mysql_query("select * from ABooking Where Ugenummer = '$Denneuge' and Ugedag = 'Mandag' order by TidFra");
while ($raekkeMan = mysql_fetch_array($resMan)) {
    if ($raekkeMan['TidFra'] == $Senestetid){
    echo "<tr><td>Optaget</td></tr>";
    $Senestetid = date("H:i:s", strtotime("+30 minutes ".$Senestetid));
    }
   
    else {
    echo "<tr><td>Ledig</td></tr>";
    $Senestetid = date("H:i:s", strtotime("+30 minutes ".$Senestetid));   
        if ($raekkeMan['TidFra'] == $Senestetid){
        echo "<tr><td>Optaget</td></tr>";
    }
   
   


}

Men det jeg gerne vil have den til, er at finde en række frem, checke imod $Senestetid om der er en match, og hvis der ikke er, så skal der skrives LEDIG og så skal $Senestetid skrives 30 minutter op, og så skal DEN SAMME række igen checkes mod den nye opskrevede variabel, og først når de matcher, skal funktionen gå videre til den næste række.

Giver det mening? Hvordan gør jeg?
Avatar billede erikjacobsen Ekspert
04. maj 2005 - 13:34 #1
Det nemmeste er vel at bytte om på hvad du gør. Sådan rent skitsemæssigt:

$raekkeMan=mysql_fetch_array($resMan);
$Senestetid="08:00:00";
while ($Senestetid<"23:00:00") {
  if ($raekkeMan['TidFra'] == $Senestetid) {
    // optaget
    $raekkeMan=mysql_fetch_array($resMan);
  } else {
    // Ledig
  }
  // tæl en halv time op
}

//Sådan cirka..
Avatar billede mydream Nybegynder
04. maj 2005 - 14:01 #2
$resMan = mysql_query("select * from ABooking Where Ugenummer = '$Denneuge' and Ugedag = 'Mandag' order by TidFra");
$raekkeMan=mysql_fetch_array($resMan);
$Senestetid="08:00:00";
while ($Senestetid<"23:30:00") {
  if ($raekkeMan['TidFra'] == $Senestetid) {
    echo "<tr><td>Optaget</td></tr>";
    $raekkeMan=mysql_fetch_array($resMan);
  } else {
    echo "<tr><td>Ledig</td></tr>";
  }
  $Senestetid = date("H:i:s", strtotime("+30 minutes ".$Senestetid));
}

--------
Det virker fuldstændig efter hensigten.

Jeg ser frem til med tiden at blive mere kreativ i arbejdet med php, for egentlig lå løsningen jo lige for. Jeg kunne bare ikke lige se den :)

Lægger du et svar?
Avatar billede erikjacobsen Ekspert
04. maj 2005 - 18:08 #3
Jeg samler ikke på point, tak. Svar selv, accepter eget svar.
Avatar billede mydream Nybegynder
04. maj 2005 - 18:21 #4
ok. Mange tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester