Lessen Script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jelle de Jong

Jelle de Jong

22/04/2013 11:36:39
Quote Anchor link
Hallo,

Ik probeer een PHP scriptje te maken om te laten zien welke les op dit moment gegeven woord.
Ik krijg het alleen niet aan het werk.
Ik denk zelf dat het aan de if conditions ligt maar ik ben een beginnende PHP programeur en ik weet niet wat de mogelijkheden zijn.

Het script is als volgt
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<!DOCTYPE html>

<html>
<body>

<?php
date_default_timezone_set('Europe/Amsterdam');

$pD = date("D");
$pU = date("G");
$pM = date("i");

if ($pD = "Mon")
{

    if ($pU = 8 || $pU = 9)
    {

        if ($pU = 08 && $pM < 30)
        {

        echo "Je hebt nog geen les";
        }

        else
        {
        echo "Eerste uur";
        }
    }

    else if ($pU = 10 || $pU = 11)
    {

        if ($pU = 10 && $pM < 15 || $pU = 11 && $pM > 45)
        {

        echo "Je hebt pauze!";
        }

        else
        {
        echo "Tweede uur";
        }
    }
}

?>


</body>
</html>


Alvast bedankt.
Ook zou ik graag uitgelegd willen hebben wat er mis is en wat er beter kan.
Bericht aangepast:
De code heb ik tussen [code]-tags geplaatst i.p.v. die van de quote.
Gewijzigd op 22/04/2013 12:42:02 door - Ariën -
 
PHP hulp

PHP hulp

25/04/2024 00:25:34
 
- Mark -

- Mark -

22/04/2013 11:44:10
Quote Anchor link
Hoe ziet een dag eruit? Als je alles op deze manier doet dan ben je wel een tijdje bezig.
 
- SanThe -

- SanThe -

22/04/2013 11:45:17
Quote Anchor link
Iets aan een variabele toewijzen doe je met =
Dingen met elkaar vergelijken doe je met ==
 
Jelle de Jong

Jelle de Jong

22/04/2013 11:50:27
Quote Anchor link
De lesuren zijn als volgt.

8:30-10:00

10:15-11:45

12:15-13:45

14:00-15:30

15:45-17:15

Ik denk dat het inderdaad ligt aan '==' ik zal dit proberen.

EDIT:
Na het veranderen van de = naar == doet de script het blijkbaar wel.
Ik zou graag commentaar horen over wat er beter kan indien iemand daar tijd voor heeft/leuk vind het te doen.
Gewijzigd op 22/04/2013 11:52:24 door Jelle de Jong
 
- Roland -

- Roland -

22/04/2013 12:23:54
Quote Anchor link
Met voor, na & pauze heb je dus al meer dan 10 mogelijkheden ?!

Ik zou eens naar SWITCH gaan kijken, veel overzichtelijker, makkelijker
 
Jelle de Jong

Jelle de Jong

22/04/2013 12:29:31
Quote Anchor link
Is het mogelijk om in PHP switches te gebruiken met een IF statement er in?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
switch $U
case Mogelijkheid
if $M > {}
case
Mogelijkheid 2
if $M < {}
?>


Is het niet mogelijk Arrays te Maken?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$pMaandag
[0,0] = Les1
$pMaandag[0,1] = Les2
?>


En deze op een manier te gebruiken?
 
Kris Peeters

Kris Peeters

22/04/2013 12:49:33
Quote Anchor link
Ja en ja.
Let wel op de syntax.
De switch:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
switch ($U) {
  case
1:
    if ($M > 5) {
      // ...
    }
    break;
  case
2:
    if ($M > 10) {
      // ...
    }
    break;
}

?>


Ook bij de array ... zoek eens de syntax op. Zie hoe het gebruikt wordt in php.
Als je Delphi kan, snap je de werking en is het maar een kwestie van syntax.
 
- Mark -

- Mark -

22/04/2013 12:59:06
Quote Anchor link
Ik denk niet dat een switch zoveel uit maakt in dit geval of wel? Ik zou voor zoiets gaan.

Let op! Niet in zijn geheel getest maar het zou moeten werken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<!DOCTYPE html>

<html>
<body>

<?php

    # De tijd goed instellen.

        date_default_timezone_set('Europe/Amsterdam');


    # De huidige tijd bepalen in uren en minuten.

        $time = date('G').date('i');
        

    # vakantiedagen.

        $holidays = array('30-4');


    # Als eerste gaan we controleren of we te maken hebben met een schooldag.

        if(date('N') < 6){

        # Op een vakantiedag gaan we naartuurlijk niet naar school.

            if(!in_array(date('j').'-'.date('n'), $holidays)){

            # Controleren of de lessen voor vandaag al begonnen zijn.

                if($time >= 830){

                # Controleren of de lessen nog bezig zijn of al afgelopen zijn.

                    if($time <= 1715){

                    # Dan gaan we nu bepalen in wat voor uur we zitten. Al het andere is pauze.

                        if($time >= 830 and $time <= 1000){

                            echo 'Eerste uur.';
                        }

                        elseif($time >= 1015 and $time <= 1145){

                            echo 'Tweede uur.';
                        }

                        elseif($time >= 1215 and $time <= 1345){

                            echo 'Derde uur.';
                        }

                        elseif($time >= 1400 and $time <= 1530){

                            echo 'Vierde uur.';
                        }

                        elseif($time >= 1545 and $time <= 1715){

                            echo 'Vijfde uur.';
                        }

                        else{

                            echo 'Je hebt pauze';
                        }

                    }

                    else{

                        echo 'De lessen voor vandaag zijn afgelopen.';
                    }
                }

                else{

                    echo 'Je hebt nog geen les.';
                }
            }

            else{

                echo 'Vakantiedag.';
            }
        }

        else{

            echo 'Weekend.';
        }


?>


</body>
</html>
Gewijzigd op 22/04/2013 13:00:26 door - Mark -
 
- Roland -

- Roland -

22/04/2013 13:02:57
Quote Anchor link
Probeer die switch eens .....

en oordeel dan nogmaals !


!! en wel op een handige manier gebruiken,

daarbij is break onmisbaar (en zijn geen if's meer nodig )
Gewijzigd op 22/04/2013 13:05:02 door - Roland -
 
Kris Peeters

Kris Peeters

22/04/2013 13:39:16
Quote Anchor link
- Roland - op 22/04/2013 13:02:57:
daarbij is break onmisbaar (en zijn geen if's meer nodig )


Het is een slecht idee om de switch te gebruiken zonder break; voor zover ik weet in alle talen.
Of het nu mag of niet (afhankelijk van de taal), het lijkt me vooral tegen de geest van de switch.


Nu, die if ...
Zoals ik het begrijp, vraagt de topic starter zich af of er binnen een case nog plaats is voor if's. En ja, dat mag.
 
Jelle de Jong

Jelle de Jong

22/04/2013 13:58:40
Quote Anchor link
@Kris
Ja, ik wou graag weten of ik if statements kon gebruiken in cases.

Ik zelf denk er nu aan om zoals Mark gedaan heeft, een variabel met date("G").date("i") te gebruiken.
Hiernaast wil ik proberen een variabel met array te maken per day.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
date_default_timezone_set('Europe/Amsterdam');

$pLes[0] = 0

$pTijd
= date("G").date("i")

$pDag = date("D")

switch ($pDag)
{
case
"Mon":
$pLes[0]=//Eerste les
$pLes[1]=//Tweede les
$pLes[2]=//Derde les
$pLes[3]=//Etc...
break;
case
"Tue":
$pLes[0]=//Eerste les
$pLes[1]=//Tweede les
$pLes[2]=//Derde les
$pLes[3]=//Etc...
break;
//etc
}

if $pTijd > 850 && $pTijd < 1715
{
// Roosterindeling
}
}

?>
 
Kris Peeters

Kris Peeters

22/04/2013 14:11:34
Quote Anchor link
Dat wordt dus bv.:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
...
$pLes = array();  // lijn 4
...
switch($pDag) {
  case
"Mon":
    $pLes = array('Nederlands', 'Wiskunde', 'Aardrijkskunde');
    break;
...
}
...

if ($pTijd > 850 && $pTijd < 1715) {
 // alwaar dus $pLes al de juiste waarde heeft gekregen.
  echo 'eerste les: ' . $pLes[0];
}

?>
 
- Roland -

- Roland -

22/04/2013 17:55:59
Quote Anchor link
@kris misschien niet goed gelezen : " daarbij is break ONmisbaar "

Ik zie dat het inmiddels over uren EN dagen gaat, maar op deze manier vind ik het echt veel prettiger

( géén if's )


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php

$p
=36;

switch($p) {
  case
$p<10:
  echo ' tot 10';
    break;
  case
$p<20:
  echo 'Tussen 10 - 20';
    break;
  case
$p<30:
  echo 'Tussen 20 - 30';
    break;
  case
$p<40:
  echo 'Tussen  30 - 40';
    break;
  case
$p<50:
  echo 'Tussen  40 - 50';
    break;

   default:

   echo " groter 50";
}

?>
Gewijzigd op 22/04/2013 18:01:11 door - Roland -
 
Jelle de Jong

Jelle de Jong

23/04/2013 09:32:47
Quote Anchor link
@Roland
Zou je misschien uit kunnen leggen wat je hebt gedaan?
En hou dit toegepast zou kunnen woorden in het script.

EDIT: Ik denk dat ik het begrijp
zou dit moeten werken?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
date_default_timezone_set('Europe/Amsterdam');

$pLes = array();
$pTijd = date("G").date("i");
$pDag = date("D");

switch ($pDag)
{
case
"Mon":
$pLes=array(les1,les2,les3,les4);
break;
case
"Tue":
$pLes=array(les1,les2,les3,les4);
break;
}


if ($pTijd > 829 && $pTijd < 1715)
{

    switch ($pTijd)
    {
    case
$pTijd<1000:
    echo "Je hebt nu ".$pLes[0]." tot 10:00";
    break;
    case
$pTijd<1015:
    echo "Je hebt pauze tot 10:15";
    break;
    case
$pTijd<1145:
    echo "Je hebt nu ".$pLes[1]." tot 11:45";
    break;
    case
$pTijd<1215:
    echo "Je hebt pauze tot 12:15";
    break;
    case
$pTijd<1345:
    echo "Je hebt nu ".$pLes[2]." tot 13:45";
    break;
    case
$pTijd<1400:
    echo "Je hebt pauze tot 14:00";
    break;
    case
$pTijd<1530:
    echo "Je hebt nu ".$pLes[3]." tot 15:30";
    break;
    case
$pTijd<1545:
    echo "Je hebt pauze tot 15:45";
    break;
    case
$pTijd<1715
    echo "Je hebt nu ".$pLes[4]." tot 17:15";
    }
}

else
{
    echo "Je bent vrij tot 8:30";
}


?>




EDIT2:
Dit geeft een fout. Zo iemand me kunnen vertellen wat ik fout heb gedaan?
Gewijzigd op 23/04/2013 10:02:36 door Jelle de Jong
 
- Roland -

- Roland -

23/04/2013 10:48:54
Quote Anchor link
" Dit geeft een fout. "

Als je ons dan verteld wat !! ??



Maar kijk even naar die array op 11 en 14 je wil daar tekst op slaan ..... tekst staat altijd tussen ...
 
Jelle de Jong

Jelle de Jong

23/04/2013 11:19:44
Quote Anchor link
@Roland
Het gaf een standaard programeer fout.
"HTTP 500"
Ik gebruikt geen programma om te programmeren gewoon standaard notepad.
Maar ik denk dat het inderdaad aan de ""'s ligt in de arrays.

Heb Arrays gewijzigd en een : vergeten achter een case het blijkt nu gewoon te werken.
Gewijzigd op 23/04/2013 11:22:47 door Jelle de Jong
 
- Roland -

- Roland -

23/04/2013 11:26:07
Quote Anchor link
Mooi !

ps. je zou ook die laatste if er nog uit kunnen halen (-> extra case)
dan ziet je code er nóg helderder uit !
 
Jelle de Jong

Jelle de Jong

23/04/2013 11:41:25
Quote Anchor link
Bedankt voor het idee!

Ik heb nu:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
date_default_timezone_set('Europe/Amsterdam');

$pLes = array();
$pTijd = date("G").date("i");
$pDag = date("D");

switch ($pDag)
{
case
"Mon":
$pLes=array("BPV","BPV","BPV","BPV");
break;
case
"Tue":
$pLes=array("BPV","BPV","BPV","BPV");
break;
}


if ($pDag != "Sat" or $pDag != "Sun")
{

    switch ($pTijd)
    {
    case
$pTijd<829:
    echo "De les ".$pLes[0]." begint om 8:30";
    break;
    case
$pTijd<1000:
    echo "Je hebt nu ".$pLes[0]." tot 10:00";
    break;
    case
$pTijd<1015:
    echo "Je hebt pauze tot 10:15";
    break;
    case
$pTijd<1145:
    echo "Je hebt nu ".$pLes[1]." tot 11:45";
    break;
    case
$pTijd<1215:
    echo "Je hebt pauze tot 12:15";
    break;
    case
$pTijd<1345:
    echo "Je hebt nu ".$pLes[2]." tot 13:45";
    break;
    case
$pTijd<1400:
    echo "Je hebt pauze tot 14:00";
    break;
    case
$pTijd<1530:
    echo "Je hebt nu ".$pLes[3]." tot 15:30";
    break;
    case
$pTijd<1545:
    echo "Je hebt pauze tot 15:45";
    break;
    case
$pTijd<1715:
    echo "Je hebt nu ".$pLes[4]." tot 17:15";
    break;

    default:

    echo "Je bent vrij tot morgen!";
    }
}

else
{
    echo "Je hebt vandaag geen les";
}

?>

Zijn er nog dingen die kunnen veranderd worden of wat beter kan of is dit script zo goed?
Gewijzigd op 23/04/2013 11:43:26 door Jelle de Jong
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.