Avatar billede Slettet bruger
01. oktober 2004 - 16:43 Der er 5 kommentarer og
1 løsning

Reservation, checke om tidspunkt er gyldigt

Hej

Jeg har en kalender hvor brugere kan foretage reservationer af biler.

Jeg har brug for en funktion og en ifsætning der checker om bussen og tidspunktet allerede er optaget.
Der må ikke kunne foretages reservationer indenfor tidsrummet - altså hvis der er booket kl. 12.00 - 14.00 må man ikke kunne bookes kl. 13.00 - 15.00.
Jeg har disse felter der skal checkes: from_, till_, date, title.

Jeg har fundet lidt kode fra et tidligere spørgmål der svarer til det jeg har brug for, men kan ikke få det til at virke.

function fribooking( $from_, $till, $date,  $title ) {
    $sql = "".
        "SELECT * ".
        "FROM wt_events2 ".
        "WHERE ".
        "( ".
        "    ( title='$title' ) AND ".
        "    ( date='$date' ) AND ".
        "    ( ".
        "        (( from_ < '$from_' ) AND ( till > '$from_' )) OR ".
        "        (( from_ < '$till' ) AND ( till > '$till' )) OR ".
        "        (( from_ < '$from_' ) AND ( till > '$till' )) OR ".
        "        (( from_ > '$from_' ) AND ( till < '$till' )) OR ".
        "        (( from_ = '$from_' ) AND ( till = '$till' )) ".
        "    )".
        ")";

    $result = mysql_query($sql)
        or die(mysql_error());

    // test om der er nogle aftaler, som konflikter med den ønskede aftale....
    if(mysql_num_rows($result) > 0)
        return false; /* der er fundet aftaler */

    return true;
}

http://eksperten.dk/spm/444757

Måske er der brug for yderligere forklaring !

Håber i kan hjælpe
Avatar billede detox Nybegynder
01. oktober 2004 - 17:03 #1
Kunne den ikke bare se sådan ud?

    $sql = "SELECT * FROM wt_events2 WHERE
            date='$date' AND ('$from'_ BETWEEN from_ AND till OR
            '$till' BETWEEN from_ AND till";
Avatar billede Slettet bruger
01. oktober 2004 - 17:36 #2
Hmm

Jeg kan ikke få det til at funke, men måske hjælper det hvis jeg vedlægger min add_event2.php

<?php

include_once("core/main.php");

// this is forced here for security reasons

if( !check_module("events2") ) die( "module not enabled" );


require_once("phpdbform/phpdbform_form.php");



$index_page = false;

$page_name = $lang["EVENTS2_ADD"];



draw_header();
$ok_add="N";
if( $cfg["events2"]["useradd1"] )
{
if( $cfg["events2"]["useradd"] )
{
$ok_add="Y";
}
}
if( $cfg["events2"]["useradd"] )
{

if( $_SESSION["wt"]["logged"] )
{ $ok_add="Y"; }

}

if( $ok_add=="N"  )

{

    theme_draw_centerbox_open( $lang["EVENTS2_ADD"] );

    print "<span class=\"error\">{$lang["EVENTS2_NOT_ADD"]}</span>";

    theme_draw_centerbox_close();

    draw_footer();

    exit;


}
else
{


$form = new phpform( "addevent2", "add_event2.php" );


$form->add_static_listbox( "title", $lang["EVENTS2_A_TITLE"], "Røde Lyn, Sølvpilen");

$form->add_date( "date", $lang["EVENTS2_A_DATE"], $cfg["core"]["date_format"]  );

$form->fields["date"]->value = date("Y-m-d");

$form->add_static_listbox( "from_", $lang["EVENTS2_A_FROM"], "00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,");

$form->add_static_listbox( "from2_", $lang["EVENTS2_A_FROM2"], "00,15,30,45");

$form->add_static_listbox( "till", $lang["EVENTS2_A_TIL"], "00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24");

$form->add_static_listbox( "still", $lang["EVENTS2_A_STIL"], "00,15,30,45");

$form->add_static_listbox( "description", $lang["EVENTS2_A_DESC"], "Hus A,Hus B,Hus C,Hus D,Annekset,Aktivitetshjørnet,Sportsgruppen,Musehul,Kælder,Kontor,Køkken");

$form->add_textbox( "who", $lang["EVENTS2_A_WHO"] , 40, 255 );

$form->add_textarea( "add_desc", $lang["EVENTS2_A_ADDDESC"], 40, 5 );

theme_draw_centerbox_open( $lang["EVENTS2_ADD"] );


$ok = false;

$errors = array();

if( $form->process() )

{

    if( !isset($_SESSION["wt"]["addevent2"]) )

    {



        $form->fields["title"]->value = trim(strip_tags($form->fields["title"]->value));   
        $form->fields["date"]->value = trim(strip_tags($form->fields["date"]->value));
        $form->fields["from_"]->value = trim(strip_tags($form->fields["from_"]->value));
        $form->fields["from2_"]->value = trim(strip_tags($form->fields["from2_"]->value));
        $form->fields["till"]->value = trim(strip_tags($form->fields["till"]->value));
        $form->fields["still"]->value = trim(strip_tags($form->fields["still"]->value));   
        $form->fields["description"]->value = trim(strip_tags($form->fields["description"]->value));
        $form->fields["who"]->value = trim(strip_tags($form->fields["who"]->value));
        $form->fields["add_desc"]->value = trim(strip_tags($form->fields["add_desc"]->value));
        $form->fields["location"]->value = trim(strip_tags($form->fields["location"]->value));

        if( !empty($errors) )

        {

            print "<div class=\"error\">";

            while( $err = each($errors) )

            {
                print "{$err[1]}<br>\n";

            }

            print "</div>\n";
   

        } else $ok = true;


        if( $ok )

        {

            $stmt = "insert into {$config["prefix"]}_events2 set"

                ." title = '".addslashes($form->fields["title"]->value)."',"
               
                ." date = '".addslashes($form->fields["date"]->value)."',"

                ." active = 'Y',"

                ." description = '".addslashes($form->fields["description"]->value)."',"

                ." from_ = '".addslashes($form->fields["from_"]->value)."',"
               
                ." from2_ = '".addslashes($form->fields["from2_"]->value)."',"
               
                ." till = '".addslashes($form->fields["till"]->value)."',"

                ." still = '".addslashes($form->fields["still"]->value)."',"
               
                ." who = '".addslashes($form->fields["who"]->value)."',"

                ." userid ='".$_SESSION[wt][uid]."',"


                ." add_desc = '".addslashes($form->fields["add_desc"]->value)."',"

                ." location = '".addslashes($form->fields["location"]->value)."'";

            $ret = db_query( $stmt );



            if( !$ret )

            {

                $ok = false;

                print "<div class=\"error\">".$lang["ERROR_04"]."<br>".db_error()."</div>";

            } else {
if( $cfg["events2"]["sendmail"] )
{
                print "<div class=\"info\">".$lang[EVENTS2_ADD_OK]."</div>";
                mail($cfg["core"]["mail_admin"], $lang["EVENTS2_M_01"], $lang["EVENTS2_M_02"]."\n\n".$cfg["core"]["url"],"From: ".$cfg["core"]["mail_admin"]."\n");
}
                $_SESSION["wt"]["addevent2"] = true;

            }

        }

    } else $ok = true;

} else {

    if( isset($_SESSION["wt"]["addevent2"]) ) unset($_SESSION["wt"]["addevent2"]);

}

if( !$ok ) $form->draw();

theme_draw_centerbox_close();


theme_draw_centerbox_open( $lang["EVENTS_LIST_EVENTS"] );
events2_draw_list();

theme_draw_centerbox_close();


draw_footer();
}
?>


Hvor sætter jeg lige den kode ind ?
Avatar billede detox Nybegynder
09. oktober 2004 - 02:19 #3
Der er osse en lille fejl i mit forslag:

    $sql = "SELECT * FROM wt_events2 WHERE
            date='$date' AND ('$from_' BETWEEN from_ AND till OR
            '$till' BETWEEN from_ AND till";
Avatar billede Slettet bruger
09. oktober 2004 - 17:07 #4
Nu er jeg ikke en haj til php, så har du et forslag til, hvor og hvordan jeg fletter koden ind i min eksisterende add_event2.php
Avatar billede detox Nybegynder
09. oktober 2004 - 17:38 #5
Nej, det må jeg nok erkende, det kan jeg ikke. Dit script gør brug funtioner og klasser fra div. includes, det kan jeg ikke lige overskue.
Avatar billede Slettet bruger
19. oktober 2004 - 01:47 #6
svar
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