Avatar billede bahn Nybegynder
07. august 2002 - 00:16 Der er 13 kommentarer og
1 løsning

Jeg skal se om der er udlejet maskiner følgende dag

Hej jeg har et lille problem jeg skal se om en maskine allerede er udlejet.

$nu = time();
($result = mysql_query("SELECT id FROM udlejning WHERE maskine = '$maskine' and date("z",start) = date("z",$nu)"))    ||     die(mysql_error());
$tal = mysql_num_rows($result);
if($tal == 0)
{
indsæt data
}

Jeg vil gerne undersøge om der er nogle udlejninger af maskinen den gældende dag!

det ovenstående et lidt et tænkt ex. bare for at give jer en ide om hvad jeg mener!
Avatar billede hansk Nybegynder
07. august 2002 - 07:38 #1
Hvis dine udlejninger har en start dato og slut dato kan du prøve flg:
SELECT count(*) FROM udlejning
WHERE trim(maskine) = trim('$maskine') and TO_DAYS(NOW()) BETWEEN TO_DAYS(start_date) AND TO_DAYS(end_date)
Avatar billede bahn Nybegynder
07. august 2002 - 10:09 #2
Det jeg skal bruge er:
hvis der er lejet ud i bare 10 sek den pågældende dag skal dagen være optaget!
Avatar billede hansk Nybegynder
07. august 2002 - 11:01 #3
Jamen godt, Så vil ovenstående sql fungere hvis har en start dato og slut dato.
Avatar billede bahn Nybegynder
07. august 2002 - 13:30 #4
Jeg har unix tid i to kolloner: start og stop
Avatar billede hansk Nybegynder
07. august 2002 - 13:53 #5
så bytter du sidste del ud sådan:

BETWEEN FROM_UNIXTIME(start,'%Y-%m-%d') AND FROM_UNIXTIME(stop,'%Y-%m-%d')
Avatar billede bahn Nybegynder
07. august 2002 - 16:23 #6
hvad betyder det der '%Y-%m-%d'
Avatar billede bahn Nybegynder
07. august 2002 - 17:44 #7
dette virker ikke efter hensigten!

$skrivnu = date("Y-m-d",$nu);
            ($result = mysql_query("SELECT id FROM udlejning WHERE trim(maskine) = trim('$maskine') and TO_DAYS($skrivnu) BETWEEN FROM_UNIXTIME(start,'%Y-%m-%d') AND FROM_UNIXTIME(stop,'%Y-%m-%d')"))    ||     die(mysql_error());
            $tal = mysql_num_rows($result);

            if($tal == 0)
                {

jeg skal tjekke flere dage ikke bare idag der for $nu, det hele står i en for sætning, længerenede står der $nu=$nu+86400;
Avatar billede bahn Nybegynder
07. august 2002 - 21:41 #8
det her virker!

SELECT id FROM udlejning WHERE trim(maskine) = trim('$maskine') and FROM_UNIXTIME(start,'%Y%d%m')  = '$skrivnu'
Avatar billede bahn Nybegynder
07. august 2002 - 21:41 #9
med denne lilie foran:
$skrivnu = date("Ydm",$nu);
men tak for inspirationen
Avatar billede hansk Nybegynder
08. august 2002 - 07:34 #10
'%Y-%m-%d' giver dig en formatering af datoen i formen 2002-08-07.
Din select vil ikke altid fungere hvis du har udlejninger som løber over flere dage. Så bliver du nødt til at anvende between eller på anden måde teste på udlejningsintervallet.
Avatar billede bahn Nybegynder
09. august 2002 - 00:01 #11
Kan du så ikke give mig et bud til på et between sætning jeg kan bruge.
noget ala
hvis nu er imellem start og stop
nu skal ikke bare være dagsdato men flere forskellige datoer
jeg siger at $nu = time();
og efter scriptet ligger jeg en dag til, og på den måde tjekker en hel måned frem!
Avatar billede hansk Nybegynder
09. august 2002 - 07:51 #12
Jeg er ikke sikker på hvordan formatet Ydm virker i en between sætning, så brug evt Ymd i stedet.

TO_DAYS(date("Ymd",$nu)) BETWEEN FROM_UNIXTIME(start,'%Y%m%d') AND FROM_UNIXTIME(stop,'%Y%m%d')   

vil give dig udlejninger mellem start og stop.
Avatar billede bahn Nybegynder
10. august 2002 - 11:32 #13
her min foresp:

            ($result = mysql_query("SELECT id FROM udlejning WHERE trim(maskine) = trim('$maskine') and TO_DAYS(date("Ymd",$nu)) BETWEEN FROM_UNIXTIME(start,'%Y%m%d') AND FROM_UNIXTIME(stop,'%Y%m%d')"))    ||     die(mysql_error());

jeg får følgende fejl:

Parse error: parse error, unexpected T_STRING in /home/skovhave/www/public_html/maskiner/udlejning/kalender.php on line 87
linie 87 er der hvor foresp'en er!
Avatar billede bahn Nybegynder
11. august 2002 - 01:57 #14
Det skulle bare gøres lidt mere simpelt!

SELECT id FROM udlejning WHERE maskine = '$maskine' and '$nu' BETWEEN start AND stop

ret logisk og det virker perf.
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
Computerworld tilbyder specialiserede kurser i database-management

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