Opdracht LOI
Schrijf een programma dat de resultaten van de tafels van 10 opslaat in een tweedimensionale array. Toon de tafels op het scherm. Noem het programma tafels.php
Script tot nu toe:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$tafels = array('tafel1' =>
array('1x1' => '1', '2x1' => '2', '3x1' => '3', '4x1' => '4', '5x1' => '5', '6x1' => '6', '7x1' => '7', '8x1' => '8', '9x1' => '9', '10x1' => '10'),
'tafel2' =>
array('1x2' => '2', '2x2' => '4', '3x2' => '6', '4x2' => '8', '5x2' => '10', '6x2' => '12', '7x2' => '14', '8x2' => '16',
'9x2' => '18', '10x2' => '20'));
$tafel = 'tafel1';
$antwoord = '2x1';
echo("Het antwoord op $antwoord is {$tafels[$tafel][$antwoord]}");
?>
$tafels = array('tafel1' =>
array('1x1' => '1', '2x1' => '2', '3x1' => '3', '4x1' => '4', '5x1' => '5', '6x1' => '6', '7x1' => '7', '8x1' => '8', '9x1' => '9', '10x1' => '10'),
'tafel2' =>
array('1x2' => '2', '2x2' => '4', '3x2' => '6', '4x2' => '8', '5x2' => '10', '6x2' => '12', '7x2' => '14', '8x2' => '16',
'9x2' => '18', '10x2' => '20'));
$tafel = 'tafel1';
$antwoord = '2x1';
echo("Het antwoord op $antwoord is {$tafels[$tafel][$antwoord]}");
?>
Ik had geen zin om alle tafels van 10 op te slaan in een array (te veel werk), dus alleen de tafels van 1 en 2 gedaan. Nu moet ik dus de hele array uitlezen en printen, maar ik heb geen idee hoe ik dit doe( Nu echo ik enkel 1 antwoord). Kan iemand me op weg helpen? Bedankt!
Print_r($tafels);
- integers horen niet tussen quotes.
Anyway je kunt met foreach de gehele array doorlopen, ik neem aan dat je die functie al weet te gebruiken?
Nee die functie ken ik nog niet. Begin steeds meer te twijfelen aan die cursus van LOI. Aangezien ze (onduidelijke) opdrachten geven en je daar stof voor nodig hebt die ze nog niet eens hebben behandeld...
Overigens is de opdracht niet echt duidelijk als je het mij vraagt. De tafels van 10 zijn bij mijn weten: 1x10, 2x10, ...x10, nx10. Dus beetje loze opdracht, je kan nooit alles tafels geven. En wat dan verder in die 2d array willen is mij een raadsel.
Het enige dat ze doen is een boek doorlopen maar als je 0,0 ervaring hebt dan word het moeilijk. En als je al een beetje ervaring hebt dan erger je alleen maar omdat ze eigenlijk nergens dieper op ingaan.
Die gasten die de boel controleren zijn ook niet de slimste, althans de persoon die ik kreeg toegewezen toendertijd.
Maar we dwalen af. Denk je dat het je lukt om je script zo te herschrijven zodat al de tafeltjes van 10 in een array komen te staan?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$resultaat = array();
for( $i=1; $i<=10; $i++ )
for( $j=1; $j<=10; $j++ )
$resultaat[$i][$j] = $i * $j;
// op scherm tonen
echo '<table>';
for( $i=1; $i<=10; $i++ ) {
echo '<tr>';
for( $j=1; $j<=10; $j++ )
echo '<td>' . $i . ' x ' . $j . ' = ' . $resultaat[$i][$j] . '</td>';
echo '</tr>';
}
echo '</table>';
?>
$resultaat = array();
for( $i=1; $i<=10; $i++ )
for( $j=1; $j<=10; $j++ )
$resultaat[$i][$j] = $i * $j;
// op scherm tonen
echo '<table>';
for( $i=1; $i<=10; $i++ ) {
echo '<tr>';
for( $j=1; $j<=10; $j++ )
echo '<td>' . $i . ' x ' . $j . ' = ' . $resultaat[$i][$j] . '</td>';
echo '</tr>';
}
echo '</table>';
?>
Om php te leren is dit wel een aardig boek
Gewijzigd op 23/08/2012 13:16:19 door John Berg
@-Mark-: Ik volg de PHP/MySQL cursus. En inderdaad ze laten je enkel het boek doorlopen met af en toe wat opdrachten (waar je geen hulp over kan vragen, vandaar gebruik ik dit forum) en in totaal een stuk of 5/6 inzendopdrachten die ze wel nakijken. Maar ik merk gewoon dat ik vaak vastloop op opdrachten zoals deze die eigenlijk vrij simpel zouden moeten zijn.
@John Berg: Ik krijg de volgende parse error bij jouw code (hoewel ik het script wel begrijp) :
( ! ) Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in C:\wamp\www\tafels.php on line 30
Niek Limpens op 23/08/2012 13:19:40:
@John Berg: Ik krijg de volgende parse error bij jouw code (hoewel ik het script wel begrijp) :
( ! ) Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in C:\wamp\www\tafels.php on line 30
( ! ) Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in C:\wamp\www\tafels.php on line 30
Ik zag hem ook, ik heb het aangepast.
Thanks voor de hulp. Altijd als je het naleest is het goed te begrijpen, nu nog zelf op dergelijke oplossingen komen (wat altijd een stuk lastiger is!).
Niek Limpens op 23/08/2012 13:25:39:
Thanks voor de hulp. Altijd als je het naleest is het goed te begrijpen, nu nog zelf op dergelijke oplossingen komen (wat altijd een stuk lastiger is!).
Ik vond de opdracht wel duidelijk en goed. De opdracht splitst heel duidelijk het reken deel (maak een 2-dim. array) en het weergave deel (toon de resultaten). Het is heel goed om op die manier php/html code op te zetten.
Als ik naar sommige stukken code hier op het forum kijk waarin php html en sql maar door elkaar gehutsefrutst wordt, dan rijzen mijn paar haren te berge en krommen mijn tenen.
En het is inderdaad niet gemakkelijk om erop te komen en ermee te beginnen. In mijn opleiding hadden we als eerste opdracht om een oplossing te vinden voor de "toren van Hanoi" (dat is een kinderspeelgoed met 3 houten pennen en 5 verschillende gekleurde ringen). Als ik daaraan terug denk lig ik helemaal dubbel ;-)
Gewijzigd op 23/08/2012 13:36:49 door John Berg
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
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
<?php
# Settings : De gewenste tafel. " Ik heb er even 5 van gemaakt om verwarring te verkomen met de 10 in de for lus."
$vermenigvuldiger = 5;
# Settings : Set array $tafeltjes voor het opslaan van de tafeltjes van 10.
$tafeltjes = array();
# Alle mogelijke tafels voor de gekozen vermenigvuldiger doorlopen en opslaan in de array $tafeltjes.
for($i = 1; $i <= 10; $i++){
# Als KEY/SLEUTEL gebruiken we de rekensom en als VALUE/WAARDE gebruiken we het antwoord.
$tafeltjes[$i.' x '.$vermenigvuldiger] = $i * $vermenigvuldiger;
}
?>
<html>
<head>
<title>De tafeltjes van <?php echo $vermenigvuldiger; ?></title>
</head>
<body>
<?php
# De lijst openen.
echo '<ul>';
# Alle tafeltjes die in de array $tafeltjes staan doorlopen.
foreach($tafeltjes as $rekensom => $antwoord){
# De rekensom en antwoord samenvoegen en weergeven.
echo '<li>'.$rekensom.' = '.$antwoord.'</li>';
}
# De lijst afsluiten.
echo '</ul>';
?>
</body>
</html>
# Settings : De gewenste tafel. " Ik heb er even 5 van gemaakt om verwarring te verkomen met de 10 in de for lus."
$vermenigvuldiger = 5;
# Settings : Set array $tafeltjes voor het opslaan van de tafeltjes van 10.
$tafeltjes = array();
# Alle mogelijke tafels voor de gekozen vermenigvuldiger doorlopen en opslaan in de array $tafeltjes.
for($i = 1; $i <= 10; $i++){
# Als KEY/SLEUTEL gebruiken we de rekensom en als VALUE/WAARDE gebruiken we het antwoord.
$tafeltjes[$i.' x '.$vermenigvuldiger] = $i * $vermenigvuldiger;
}
?>
<html>
<head>
<title>De tafeltjes van <?php echo $vermenigvuldiger; ?></title>
</head>
<body>
<?php
# De lijst openen.
echo '<ul>';
# Alle tafeltjes die in de array $tafeltjes staan doorlopen.
foreach($tafeltjes as $rekensom => $antwoord){
# De rekensom en antwoord samenvoegen en weergeven.
echo '<li>'.$rekensom.' = '.$antwoord.'</li>';
}
# De lijst afsluiten.
echo '</ul>';
?>
</body>
</html>
Gewijzigd op 23/08/2012 13:33:57 door - Mark -
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$resultaat = array();
for( $i=1; $i<=10; $i++ )
for( $j=1; $j<=10; $j++ )
$resultaat[$i][$j] = $i * $j;
Toon_2_Dim_Array( $resultaat );
exit(0);
function Toon_2_Dim_Array( $aArray )
{
echo '<table>';
foreach( $aArray as $x => $subArray) {
echo '<tr>';
foreach( $subArray as $y => $resultaat)
echo '<td>' . $x . ' x ' . $y . ' = ' . $resultaat[$x][$y] . '</td>';
echo '</tr>';
}
echo '</table>';
}
?>
$resultaat = array();
for( $i=1; $i<=10; $i++ )
for( $j=1; $j<=10; $j++ )
$resultaat[$i][$j] = $i * $j;
Toon_2_Dim_Array( $resultaat );
exit(0);
function Toon_2_Dim_Array( $aArray )
{
echo '<table>';
foreach( $aArray as $x => $subArray) {
echo '<tr>';
foreach( $subArray as $y => $resultaat)
echo '<td>' . $x . ' x ' . $y . ' = ' . $resultaat[$x][$y] . '</td>';
echo '</tr>';
}
echo '</table>';
}
?>
De functie Toon_2_Dim_Array toont 2 dimensionaal array, onafhankelijk van de grootte. De functie kan hergebruikt worden.
Gewijzigd op 23/08/2012 13:47:13 door John Berg
Niek Limpens op 23/08/2012 12:52:26:
Nee die functie ken ik nog niet. Begin steeds meer te twijfelen aan die cursus van LOI. Aangezien ze (onduidelijke) opdrachten geven en je daar stof voor nodig hebt die ze nog niet eens hebben behandeld...
Dat is helemaal waar en het gaat zelfs nog verder dan dat.
Ik heb het hier nog met de Exin en medestudenten over gehad en die bevestigen beiden dat je niet de volledige stof van de LOI krijgt waarvan examens worden gemaakt. In mijn geval kreeg je uitreksels waardoor je nooit voor een tien kan leren. En dat is nog niet eens het enige wat er mis mee mee is .. Ik raad het niemand aan..
Back ontopic..
Quote:
In mijn geval kreeg je uitreksels waardoor je nooit voor een tien kan leren.
Ik heb het bewijsschrift die je na het behalen van de cursus kunt aanvragen hier liggen met een 10 erop "Ze ronden af naar boven". Ik heb die cursus toendertijd gevolgd omdat ik er van uit ging dat ze verder gingen dan de basis. Helaas was dat niet het geval en zelfs de basis leren ze je niet altijd goed aan. Even voor de goede orde, zo goed ben ik ook weer niet. Er zijn hier genoeg gasten die stukken beter zijn. De kennis van de LOI is gewoon te laag op dit gebied.
Het commentaar dat ze leveren op het ingeleverde werk is ook niet meer dan 5 regeltjes. De gemiddelde reactie hier op phphulp is langer.
Gewijzigd op 23/08/2012 16:03:18 door - Mark -
John Berg op 23/08/2012 13:33:09:
....
Als ik naar sommige stukken code hier op het forum kijk waarin php html en sql maar door elkaar gehutsefrutst wordt, dan rijzen mijn paar haren te berge en krommen mijn tenen.
.....
Als ik naar sommige stukken code hier op het forum kijk waarin php html en sql maar door elkaar gehutsefrutst wordt, dan rijzen mijn paar haren te berge en krommen mijn tenen.
.....
Ik ben in zoverre met je eens dat de code daardoor een stuk onoverzichtelijker wordt, maar veelvuldig echoën in lus is ook niet alles. Ik ben dan altijd geneigd om het in een variabele aan elkaar te 'plakken', en die dan aan het eind is zijn geheel te echoën.
Ger van Steenderen op 23/08/2012 16:06:05:
Ik ben in zoverre met je eens dat de code daardoor een stuk onoverzichtelijker wordt, maar veelvuldig echoën in lus is ook niet alles. Ik ben dan altijd geneigd om het in een variabele aan elkaar te 'plakken', en die dan aan het eind is zijn geheel te echoën.
Dat doe ik ook wel eens ooit, als ik nog niet aan het html deel van de code ben.
Een heleboel echo's in een lus doe ik nooit, dat wordt onoverzichtelijk.
Maar dit vind ik dan wel acceptabel:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
foreach ( $movies as $movie ) { ?>
<tr>
<td><?= $movie['Title'] ?></td>
<td><?= $movie['Description'] ?></td>
<td><?= $movie['Actors'] ?></td>
<td><?= $movie['Director'] ?></td>
<td><?= $movie['Genre'] ?></td>
<td><?= $movie['ReleaseYear'] ?></td>
<td><?= $movie['Runtime'] ?></td>
</tr>
<? } ?>
?>
foreach ( $movies as $movie ) { ?>
<tr>
<td><?= $movie['Title'] ?></td>
<td><?= $movie['Description'] ?></td>
<td><?= $movie['Actors'] ?></td>
<td><?= $movie['Director'] ?></td>
<td><?= $movie['Genre'] ?></td>
<td><?= $movie['ReleaseYear'] ?></td>
<td><?= $movie['Runtime'] ?></td>
</tr>
<? } ?>
?>
Ik heb de php_short_tag aan staan,
Gewijzigd op 23/08/2012 16:33:56 door John Berg
Een cursus van LOI hoef je niet te volgen om PHP en SQL te leren. Het mooie van dit vak is dat je alles (echt alles) op het internet kan vinden. Ik heb wel 2 boeken ooit aangeschaft en doorgelezen, maar daar blijft het ook bij.
Op http://phpacademy.org/ kun je gratis (in het engels) videos bekijken waarin allerlei php voorbeelden in voor komen. Word allemaal heel erg goed uitgelegd en is makkelijk te verstaan voor bijna iedereen.
PS:
Mocht je hierin geintereseerd zijn -> (Klik hier eens)
Sorry, dan heb ik je niet goed begrepen, ik dacht dat je dat juist bedoelde met PHP en HTML door elkaar hutsefrutselen.
Gewijzigd op 23/08/2012 16:37:21 door Ger van Steenderen
ik heb ook die loi cursus gedaan alleen vind het niet goed ze controlleren totaal niet op fouten of beveiling ze kijken of het werkt zo ja een 9 zo niet krijg je commentaar en kun je het nog een keer proberen xD
Ger van Steenderen op 23/08/2012 16:36:30:
@John
Sorry, dan heb ik je niet goed begrepen, ik dacht dat je dat juist bedoelde met PHP en HTML door elkaar hutsefrutselen.
Sorry, dan heb ik je niet goed begrepen, ik dacht dat je dat juist bedoelde met PHP en HTML door elkaar hutsefrutselen.
Ik bedoelde eigenlijk dat er onvoldoende scheiding is tussen weergave en voorbereidend werk.