Lessen Script
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)
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
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>
<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 -
Hoe ziet een dag eruit? Als je alles op deze manier doet dan ben je wel een tijdje bezig.
Dingen met elkaar vergelijken doe je met ==
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
Ik zou eens naar SWITCH gaan kijken, veel overzichtelijker, makkelijker
Is het niet mogelijk Arrays te Maken?
En deze op een manier te gebruiken?
Let wel op de syntax.
De switch:
Code (php)
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.
Let op! Niet in zijn geheel getest maar het zou moeten werken.
Code (php)
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
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>
<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 -
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 -
- 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.
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)
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
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
}
}
?>
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
}
}
?>
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)
Gewijzigd op 22/04/2013 18:01:11 door - 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)
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
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";
}
?>
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
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 ...
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
ps. je zou ook die laatste if er nog uit kunnen halen (-> extra case)
dan ziet je code er nóg helderder uit !
Ik heb nu:
Code (php)
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
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";
}
?>
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