Avatar billede jammerlab Nybegynder
31. december 2006 - 16:26 Der er 1 kommentar og
1 løsning

Problemer med en kontrol af dato

Hej derude... scriptet jeg poster forneden har haft nogle problemet med en kontrol. Det er en kontrol af at man ikke opretter oven på en allerede eksisterende aftale... jeg har pillet delen ud af et meget større script, men det burde vi kunne se bort fra. I databasen er der en "kalender" som gemmer alle datoer som er en del af lejeaftalen.. de har et xid som stemmer overens med selve aftalen som er i "kalender_aftale". I denne ligger der start_d start_m start_aar og slut_d osv.. jeg har bare givet dem faste variabler i scriptet her for at finde en løsningen uden at involdvere databasen for meget.

Kontrollen skal som sagt kontrollere at man ikke lejer ind i en allere eksisterende periode, men man må gerne book på slut datoen eller start datoen af en aftale (start_d / slut_d). Nogen der kan hjælpe mig?

<?

$start_m = '7';
$start_d = '2';
$start_aar = '2009';
$slut_m = '7';
$slut_d = '5';
$slut_aar = '2009';

$start = @gmmktime(0, 0, 0, $start_m, $start_d, $start_aar);
$slut = @gmmktime(23, 59, 59, $slut_m, $slut_d, $slut_aar);

$m = @date( "n", mktime(0, 0, 0, $start_m, 1, $start_aar));

$aar = $start_aar;
$i = 0;

for($day=$start_d; $start < $slut; $start += (60*60*24), $day++){
$i++;
echo "$i<br>";
$days_in_month = date( "t", mktime(0, 0, 0, $start_m, 1, $aar));
if($m == 13) { $m = 1; }
$query = mysql_query("SELECT * FROM kalender WHERE date = '$day' && month = '$m' && year = '$aar'");
if (mysql_num_rows($query) > 0) {
$row = mysql_fetch_array($query);

$query2 = mysql_query("SELECT * FROM kalender_aftale WHERE xid = '$row[aftale_id]'");
$row2 = mysql_fetch_array($query2);

// Det er her kontrollen skal være... men jeg kan ikke lige finde på en rigtig en...

if($day != $row2[start_d] && $day != $row2[slut_d]) {
if(!$set) {
$error = "$error <span class=textred>1</span><br>";
$set = true;
}
}
}
}
echo "debug";

if($error) { echo "$error"; }
?>
Avatar billede jammerlab Nybegynder
31. december 2006 - 16:48 #1
Den gamle kontrol var:

    $ii = $day - 1;
    if($i == '2' && $day == $row2['slut_d'] or $day == $row2['start_d'] && $ii == $row2['slut_d'] or $ii == $row2['start_d']) {
    if(!$set) {
    $error = "$error <span class=textred>Du kan ikke booke når der allerede er en aftale!</span><br>";
    $set = true;
    }
    }
    if($day == $row2['slut_d'] or $day == $row2['start_d']) {

    echo "";

    } else {

    if(!$set) {
    $error = "$error <span class=textred>Du kan ikke booke når der allerede er en aftale!</span><br>";
    $set = true;
    }

    }

men der lavede den en fejl hvis aftalen der var oprettet var på 2 dage... så kunne man ikke booke på slut eller start datoen...
Avatar billede jammerlab Nybegynder
31. december 2006 - 17:01 #2
har fundet fejlen...
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

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging