Avatar billede Slettet bruger
28. december 2009 - 18:46 Der er 12 kommentarer og
1 løsning

Kategorier vist efter dag og klokken

Hej.
Synes selv denne her er lidt af en udfordring, jeg kan i hvert fald ikke lige overskue den - så håber der er nogle af jer der er eksperter.
Jeg skal have lavet et script hvor nogle kategorier bliver vist efter klokken og dag - må nok indrømme jeg ikke helt kan regne den ud. Men det kan jo nok lade sig gøre, så håber der er nogle der kan hjælpe her.

Jeg har 4 forskellige kategorier, f.eks. 1, 2, 3 og 4.

De skal vises som følgende:

Kategori 1: Hver mandag til fredag fra kl. 5-10
Kategori 2: Hver mandag til fredag fra kl. 10-12
Kategori 3: Hver mandag til fredag fra kl. 12-18
Kategori 4: Fredag kl. 18 til mandag kl. 5

Og så skal der bare være en som bliver vist hvis det er uden for nogle af de andres tidsgrænser.

Synes i hvert fald selv den er ret tricky. :-)

Mvh.
Henrik
Avatar billede zynzz Praktikant
28. december 2009 - 20:14 #1
Jeg går ud fra du har dette gemt i en database fx. mysql...

Det jeg ville bruge var fx.:
SELECT * FROM tabel WHERE tid BETWEEN 5 AND 10;


eller
SELECT * FROM tabel WHERE tid > 4 AND tid < 11;


Men mere info tak!
Avatar billede Slettet bruger
28. december 2009 - 20:51 #2
Yes, altså det jeg skal have ud er jo gemt i min SQL database i et felt der hedder kategori.... Jeg har et felt der hedder tid, men der er kun dato...

Så det skal nok være den sidste med SELECT * FROM tabel WHERE tid > 4 AND tid < 11;

Så skal jeg jo bare have lavet "tid" til "aktuel date"... Vil det være sådan noget ligende løsningen skulle være?
Avatar billede zynzz Praktikant
28. december 2009 - 21:37 #3
Lavede et eksempel:

<?php
//FIND KATEGORI
function FindKategori() {

//UNIXTIME
$Tid = time();

//STANDART KATEGORI
$Kategori = 5;

//DAG
$Dag = date('N',$Tid);

//TIME
$Time = date('H',$Tid);

    //MANDAG TIL FREDAG
    if (in_array($Dag, range(1, 5))) {

        //5-10
            if (in_array($Time, range(5, 10))) {
            $Kategori = 1;
        }

        //10-12
        if (in_array($Time, range(10, 12))) {
            $Kategori = 2;
        }

        //12-18
        if (in_array($Time, range(12, 18))) {
            $Kategori = 3;
        }
    }

    //FREDAG,LOERDAG,SOENDAG,MANDAG
    if (in_array($Dag, array(5,6,7,1))) {

        //FREDAG FRA KLOKKEN 18
            if ($Dag == 5 && $Time >= 18) {
            $Kategori = 4;
        }

        //MANDAG TIL KLOKKEN 5
        if ($Dag == 1 && $Time <= 5) {
            $Kategori = 4;
        }

        //LOERDAG OG SOENDAG
        if (in_array($Dag, array(6,7))) {
            $Kategori = 4;
        }
    }

return $Kategori;
}

echo "SELECT * FROM tabel WHERE kategori = '".FindKategori()."'";
?>
Avatar billede Slettet bruger
28. december 2009 - 21:44 #4
Lækkert.... :-)

Jeg bliver nød til at hoppe af nu, har siddet her 12 timer og trænger vist efterhånden til noget at spise. Men glæder mig til at kigge på dit eksempel i morgen og arbejde videre på det.
Avatar billede zynzz Praktikant
28. december 2009 - 22:12 #5
Bare iorden.. :)
Avatar billede Slettet bruger
03. januar 2010 - 12:24 #6
Så har jeg først fået tid igen, har jo holdt lidt juleferie fra computeren. :-)

Er kommet lidt i tanke om at jeg faktisk godt kan undvære at kontakte databasen - skal bare have udskrevet et billede og en tekst. Det vil blive ved med at være det samme, så det kan jeg jo lige så godt bare placerer direkte i koden.
Avatar billede Slettet bruger
03. januar 2010 - 12:31 #7
Det fungerer super. :-) MANGE TAK!

Hvis jeg vil have smidt et bilede og en tekst ind, så kan jeg vel bare ændre kategori til f.eks. pic og give den et billede navn, samt lave en ny variale med tekst og retunerer den også?

Og så udskrive billede og teksten.
Avatar billede Slettet bruger
03. januar 2010 - 12:59 #8
Hmmm.. okay, det er jo lavet som en funktion og den kan vel kun retunerer en variabel.. Hvordan dælen gør jeg lige så jeg kan returerer 2 variabler, altså billedenavn og tekst?

Men det virker super fint og den udskriver som den skal.. :-)
Avatar billede Slettet bruger
03. januar 2010 - 13:31 #9
arghhh.. bare glem det... jeg laver det ud fra databasen, nu fungerer det perfekt, så er der jo ingen grund til at lave om i det. Og det er jo lige så nemt at smide det i databasen. :-)
Så det forsøger jeg lige.
Avatar billede Slettet bruger
03. januar 2010 - 17:07 #10
Det kører nu, det er bare helt perfekt.
Jeg siger tusinde tak for dit eksempel.
Send bare svar. :-)
Avatar billede zynzz Praktikant
10. januar 2010 - 01:50 #11
Her har du et svar, godt du kunne bruge det...
Avatar billede Slettet bruger
10. januar 2010 - 21:44 #12
Selvfølgelig.. :-)
Avatar billede Slettet bruger
10. januar 2010 - 21:44 #13
Og igen tak.. Det fungerer bare super.. :-)
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