Avatar billede dingkee Nybegynder
20. februar 2006 - 11:55 Der er 10 kommentarer og
1 løsning

Tidsbegrænsning

Hej...

Jeg er ved at lave et script så man kan lave sådan at en side kun vises inden for en bestemt periode...

Men nu vil jeg gerne have lavet det sådan at hvis man ikke taster nogen periode bliver siden vist altid...

I min database har jeg lavet disse 2 felter:
fra
til

de er lavet som Date, så hvis der ikke bliver tastet noget ind i dem laver den en autodato der hedder 0000-00-00

Jeg tjekker i min sql streng om datoen er inden for den givne periode.... Det hele virker fint indtil man ikke vil have tidsbegrænsning på...

For så er datoen siden skal virke fra 0000-00-00 til 0000-00-00

Hvordan gør jeg sådan at når man ikke indtaster noget i feltet, så vises siden altid??
Avatar billede sone Nybegynder
20. februar 2006 - 12:04 #1
sætter default værdien for til-feltet til 2009-12-31
Avatar billede Slettet bruger
20. februar 2006 - 12:12 #2
Din query skal bare være:

SELECT * FROM table WHERE (fra>=". $dato ." AND til>=". $dato .") OR fra=0 AND til=0

Men det er hvis du smider timestamps ind i stedet.. Det er, efter min overbevisning, lettere at arbejde med.
Avatar billede dingkee Nybegynder
20. februar 2006 - 12:14 #3
Den ændre ikke på det i databasen, i til feltet kommer der stadig til at stå 0000-00-00
Avatar billede dingkee Nybegynder
20. februar 2006 - 12:21 #4
wicez>> Din måde virkede... Tak :) Point på vej
Avatar billede dingkee Nybegynder
20. februar 2006 - 12:34 #5
Det har givet et lille problem... når jeg bruger det der kan jeg ikke have en anden variabel til at sige hvad der skal være på siden...

F.eks. har jeg en undermenu som skal vises hvis levelid = 1, når jeg så sætter den linie kode på, så viser den alle... hvad kan der være galt?
$sql1 = mysql_query("SELECT * FROM miniCMS WHERE level = '" . $levelid . "' AND (fra <= '" . $dato . "' AND '" . $dato . "' <= til) OR fra=0 AND til=0");
Avatar billede Slettet bruger
20. februar 2006 - 12:37 #6
Tak for point. :)
Avatar billede Slettet bruger
20. februar 2006 - 12:40 #7
<?
$sql1 = mysql_query("
    SELECT
        *
    FROM
        miniCMS
    WHERE
        level = '" . $levelid . "'
        AND
            (
                (
                fra <= '" . $dato . "'
                AND til >= '" . $dato . "'
                )
            OR
                (
                fra = 0
                AND    til = 0
                )
            )");
?>
Avatar billede dingkee Nybegynder
20. februar 2006 - 12:42 #8
cool... takker rigtig mange gange... Faktisk også en mere overskuelig måde at stille en sql sætning op på
Avatar billede Slettet bruger
20. februar 2006 - 12:44 #9
Selv tak :)

Ja det andet bliver for uoverskueligt hvis du også skal have smidt nogle joins på.
Avatar billede gizmo-gizmo Nybegynder
20. februar 2006 - 13:14 #10
Spild af skærmplads og harddisk :-)
Avatar billede Slettet bruger
20. februar 2006 - 13:34 #11
Skærmplads - måske.

Harddisk - nej :) Linieskift fylder uendelig lidt :P
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