Avatar billede webbe Nybegynder
20. november 2008 - 09:07 Der er 3 kommentarer og
1 løsning

Bookingsystem der virker, og så ikke virker

Vi arbejder pt. på at bookingsystem af nogle foto-atalier hvor man kan booke sig ind på en enkelt time, eller hen over flere timer.

Når oversigten skal vises skal der på de bookede tider stå "optaget" og på de ikke bookede timer stå "ledig".
Dette virker også på de første tidspunkter på dagen og hvis der kun er en bookning på en dag, hvilket godt kan være over flere sammenhængende timer, men hvis der er bookninger fra fx. kl. 9-12 samt fra kl. 14-16 på samme dag så vises den første tidsbookning som optaget, mens den anden tidsbookning vises som både optaget og ledig - og hvorfor så det?

Vi har følgende kode:

<?php
    $weekday5 = date('D');
    $day5 = date('d');
    $month5 = date('m');
    $year5 = date('Y');

    if(!isset($_GET['day'])){
        echo "<br /><br /><b>I dag ";
        echo $weekday5." den ";
        echo $day5."/";
        echo $month5."/";
        echo $year5."</b><br /><br />";
    };
echo "
<table id = 'tabel'>
    <tr>
        <td>Tid</td>
        <td>Studie A</td>
        <td>Studie B</td>
        <td>Studie C</td>
    </tr>";
               
    $tid = mysqli_query($conn,"SELECT * FROM tidspunkt");
    while($tid1 = mysqli_fetch_array($tid)){
        echo "   
        <tr>
            <td>".$tid1['tid']."</td>
            <td>";
               
        $studiea = mysqli_query($conn,"SELECT * FROM studie WHERE studie = 'a'");       
        while($studiea1 = mysqli_fetch_array($studiea)){
       
            $mike = $studiea1['resevations_id'];
            $var = explode(",",$mike);
           
           
        //    foreach($var as $rid){
            //if($rid == $tid1['id']){
            //        echo "optaget<br />";
                if(in_array($tid1['id'],$var)){
                    echo "optaget";
               
            //    };
            //};
            };
        };
        if(!in_array($tid1['id'],$var)){
            echo "ledig";
        };
        #if($tid1['id'] != $var){
            #echo "ledig";
        #};
        echo"
        </td>
        </tr>";
           
    };
   
echo"
</table>";
?>

Vi har forsøgt mange forskellige ting, bla. med else, hvilket blot giver et endnu værre resultat med mange ledig-angivelser på den samme tid, så fortvivlelsen er stor.
Avatar billede bitkid Nybegynder
20. november 2008 - 09:28 #1
Det er svært lige at se hvad der er problemet her da du ikke oplyser hvad dine tabeller indeholder (tidspunkt og studie).

Hvad er f.eks. forskellen på $tid1['tid'] og $tid1['id']?

Jeg kunne specielt godt tænke mig at vide hvad reservations_id feltet indeholder i studie tabellen.
Avatar billede webbe Nybegynder
20. november 2008 - 09:36 #2
Tabellen tidspunkt indeholder et id ($tid1['id']) (int+autonummerering) og et felt til tidsintervaller ($tid1['tid']), fx. 09-10, 10-11 osv (VarChar).

Tabellen studie indeholder et reservationsid der relaterer til feltet id i tabellen tidspunkt, og er af typen varchar. Hvis en booking strækker sig over flere tidsintervaller angives de som en kommasepareret liste.
Altså - resvations_id feltet indeholder en kommasepareret liste over de tidsintervaller der er reserveret til én booking.
Avatar billede webbe Nybegynder
02. december 2008 - 13:29 #3
fandt løsningen andet sted
Avatar billede webbe Nybegynder
02. december 2008 - 13:29 #4
men tak for indsatsen
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