Avatar billede borgenviby Nybegynder
04. juli 2007 - 14:37 Der er 4 kommentarer

hvorfor looper den ikke igennem dette while()

Jeg har stirret mig blind på hvor den kun laver et udtræk fra databasen med dette udtræk.
Nogen der gider oplyse mig?

<?
   
    while($result = wrap_db_fetch_array($query)){ // Prøve nr. 2
   
           
    while($first_free_time = $result['schedule_date_time']){
    //$booking_interval = strtotime('1970-01-01 00:30:00'); // ex. 00:45:00
   
    $free_start_time = strtotime($first_free_time);
    $free_end_time = $free_start_time+$booking_interval;
    $time_interval = BOOKING_TIME_INTERVAL*60;
   
   
   
    $query = "SELECT COUNT(schedule_date_time) FROM " . DATE_TIME_SCHEDULE_TABLE . " WHERE (";
  {
    for($i= $free_start_time; $i<= $free_end_time; $i+=$time_interval)
    $query .= "schedule_date_time = '". date('Y-m-d H:i:s', $i) . "') ";
  }
    $result = wrap_db_query($query);
    $count = wrap_db_fetch_array($result);               
   
    $need_count = count($i);
        if($count >= $need_count) {
           
            $booking_start_time = date('Y-m-d H:i:s', $free_start_time);
            $booking_end_time = date('Y-m-d H:i:s', $free_end_time);
           
            }
       
   
    ?>
    <a href="<?=href_link(ADD_BOOKING, 'start_date='.$booking_start_time.'&end_date='.$booking_end_time.'&view=week&'.make_hidden_fields_workstring(array('loc')), 'NONSSL')?>"><?= $booking_start_time; ?></a><br />
    <?
    } // end of while
} // end of while   
    ?>
Avatar billede intenz Novice
04. juli 2007 - 19:25 #1
Du bruger:
while($result = wrap_db_fetch_array($query)){ // Prøve nr.

Og inden i while løkken definerer nu $query igen. Så går while løkken i stå :)

Med andre ord, find et andet navn til:
query = "SELECT COUNT(schedule_date_time) FROM " . DATE_TIME_SCHEDULE_TABLE . " WHERE (";
Avatar billede dkfire Nybegynder
04. juli 2007 - 20:00 #2
Dette er vel heller ikke særlig smart i en while løkke, da det vil være sandt hele tiden:
while($first_free_time = $result['schedule_date_time'])

Du skal nok bare droppe den while løkke, og skrive $first_free_time = $result['schedule_date_time']; i stedet.
Avatar billede borgenviby Nybegynder
05. juli 2007 - 09:48 #3
Har rettet op på fejlene, så nu kører den gennem loopet, men der kommer ingen resultater.:o(

Hvad kan jeg gøre for at få den til at gennemgå arrayet og spytte de tider i databasen der er = 0 for starttid -> sluttid?

troede det ville virke med dette script....

Ser sådan ud nu :

while($result = wrap_db_fetch_array($query)){ // Prøve nr. 2
   
    $n=0;       
    $first_free_time = $result[$n];
   
    $free_start_time = strtotime($first_free_time);
    $free_end_time = $free_start_time+$booking_time;
    $time_interval = BOOKING_TIME_INTERVAL*60;
   
   
   
    $sql = "SELECT COUNT(schedule_date_time) FROM " . DATE_TIME_SCHEDULE_TABLE . " WHERE (";
  {
    for($i= $free_start_time; $i<= $free_end_time; $i+=$time_interval)
    $sql .= "schedule_date_time = '". date('Y-m-d H:i:s', $i) . "') ";
  }
   
    $temp = wrap_db_query($sql);
    $count = wrap_db_fetch_array($temp);               
   
    $need_count = count($i);
        if($count >= $need_count) {
           
            $booking_start_time = date('Y-m-d H:i:s', $free_start_time);
            $booking_end_time = date('Y-m-d H:i:s', $free_end_time);
           
            }
       
   
    ?>
    <a href="<?=href_link(ADD_BOOKING, 'start_date='.$booking_start_time.'&end_date='.$booking_end_time.'&view=week&'.make_hidden_fields_workstring(array('loc')), 'NONSSL')?>"><?= $booking_start_time; ?></a><br />
    <?
   
    $n++;
   
} // end of while
Avatar billede borgenviby Nybegynder
05. juli 2007 - 10:41 #4
OK igen ;o)

Det har trækker værdierne ud af databasen, men der er ingen kontrol med om de er ledige.

while($result = wrap_db_fetch_array($query)){; // Prøve nr. 2
   
    $n=0;       
    $first_free_time = $result[$n];
   
    $free_start_time = strtotime($first_free_time);
    $free_end_time = $free_start_time+$booking_time;
    $time_interval = BOOKING_TIME_INTERVAL*60;
   
        if($free_start_time <= $free_end_time){
       
            $n++;
           
            $booking_start_time = date('Y-m-d H:i:s', $free_start_time);
            $booking_end_time = date('Y-m-d H:i:s', $free_end_time);
       
    ?>
    <a href="<?=href_link(ADD_BOOKING, 'start_date='.$booking_start_time.'&end_date='.$booking_end_time.'&view=week&'.make_hidden_fields_workstring(array('loc')), 'NONSSL')?>"><?= $booking_start_time; ?></a><br />
    <?
       
} // end of if
} // end of while       


Vil gerne tælle/vide om start->slut er = 0 men kan ikke få det til at kører sammen.

Det ser sådan ud :

while($result = wrap_db_fetch_array($query)){; // Prøve nr. 2
   
    $n=0;       
    $first_free_time = $result[$n];
   
    $free_start_time = strtotime($first_free_time);
    $free_end_time = $free_start_time+$booking_time;
    $time_interval = BOOKING_TIME_INTERVAL*60;
   
        if($free_start_time <= $free_end_time){
       
            $n++;
           
                   
    $sql = "SELECT COUNT(schedule_date_time) FROM " . DATE_TIME_SCHEDULE_TABLE . " WHERE (";
  {
    for($i= $free_start_time; $i<= $free_end_time; $i+=$time_interval)
    $sql .= "schedule_date_time = '". date('Y-m-d H:i:s', $i) . "') = 0 ";
  }
   
    $temp = wrap_db_query($sql);
    $count = wrap_db_fetch_array($temp);               
   
    $need_count = count($i);
        if($count >= $need_count) {
           
            $booking_start_time = date('Y-m-d H:i:s', $free_start_time);
            $booking_end_time = date('Y-m-d H:i:s', $free_end_time);
           
            }
       
   
    ?>
    <a href="<?=href_link(ADD_BOOKING, 'start_date='.$booking_start_time.'&end_date='.$booking_end_time.'&view=week&'.make_hidden_fields_workstring(array('loc')), 'NONSSL')?>"><?= $booking_start_time; ?></a><br />
    <?
   

   
} // end of if
} // end of while
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