Avatar billede borgenviby Nybegynder
03. februar 2007 - 11:43 Der er 6 kommentarer og
1 løsning

En nemmere måde at lave en funktion på

Har lavet dette script til at trække tider ud af DB, men findes der ikke en mere pæn måde at gøre det på?

Som det er nu skal jeg manuelt lave 5 funktions med forskellige tider.

// Lav udtræk af database på book_start, book_end og gem værdierne i et array
    $sql ="SELECT book_start, book_end ";
    $sql .="FROM book ";
    $sql .="WHERE medarbejder_id =" . $medarbejder_id . " ";
    $sql .="AND book_date =" . $book_date . " ";
    $sql .="AND book_start >=" . $start_hour . " ";
    $sql .="OR book_start <=" . $end_hour . " ";
    $sql .="AND book_end <=" . $end_hour . " ";
    $sql .="OR book_end >=" . $start_hour . " ";
    $sql .="ORDER BY book_start ASC ";
        $temp = db_query($database_name, $sql);
        while($temp_ = fetch_array($temp)){

          $book_start[] = strtotime($temp_["book_start"]);
          $book_end[] = strtotime($temp_["book_end]");
         
        }

        // Udregn forskel mellem book_end / book_start
        function ledig_tid01(){
       
        if($book_start[] = ""){
         
          for($n=34200; $n<=59400; $n+=7200){
           
            $ledig_tid01 = date("H:i:s", $n);
           
          }
        }

        else($book_start[1] - $book_end[0] >= $ydelse_tid){
         
          $ledig_tid01 = date("H:i:S", $book_end);
         
        }
       
        return $ledig_tid01;
       
        }
Avatar billede limemedia Nybegynder
03. februar 2007 - 12:14 #1
Hvad er det præcist du vil have din funktion til at lave ?
Avatar billede esben85 Nybegynder
03. februar 2007 - 12:29 #2
Du kan starte med at smide book_end og book_start som parametre til funktionen, så dataflowet er mere synligt.

hvor er det iøvrigt du kalder ledig_tid01()?

Ved at bruge parametre, kan du måske generalisere din funktion, så du kun behøver en.

Men det er lidt svært at gætte, hvad du mener.
Avatar billede borgenviby Nybegynder
03. februar 2007 - 12:51 #3
Vil have funktionen til at se hvad tidsforskellen er mellem book_start og book_end

f.eks. :

book_start[0] = 09:30:00 book_end[0] = 10:15:00
book_start[1] = 11:00:00 book_end[1] = 11:30:00

Så skal jeg bruge tiden mellem book_start[1] = 11:00:00 - book_end[0] = 10:15:00

For at om man kan sætte en ny booking ind. :o)

Vil kalde ledig_tid senere i en en html table
Avatar billede borgenviby Nybegynder
03. februar 2007 - 13:25 #4
Men hvis nu der er 6 tider gemt i DB ville jeg jo gerne lave en funktion der læser alle tiderne igennem og laver en række med mulige tider.
Nogle ideér hvordan man gør det så man ikke skal lave så meget kode?
Avatar billede esben85 Nybegynder
03. februar 2007 - 14:29 #5
Er det sådan noget her du tænker på?

function timedifferences(){
    var $tmpArray[];
    for($i=0;$i<count($book_start);$i++)
        for($j=0;$j<count($book_end);$j++)
            $tmpArray[] = $book_start[$i] - $book_end[$j];
    //eventuel sorteringsalgoritme
    return $tmpArray;
}
Avatar billede borgenviby Nybegynder
05. februar 2007 - 12:45 #6
Men tager den så ikke hvad der svarer til :

book_start[0] - book_end[0]
osv.

Den skal regne fra :

book_start[1] - book_start[0]

Eller det er jo sådan jeg ser det for mig :o)
Avatar billede borgenviby Nybegynder
11. juli 2007 - 12:34 #7
Lukker tråden.
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