Tabel voorbeeld
Hallo mensen,
Ik ben nog maar net begonnen met het begrijpen van php. Alles ontstaan doordat men mij niet wilde helpen met het scripten van een xml feed.
Maar ik loop al direct tegen een probleem aan in het cursusboek.
Ik moest een simpele tabel overnemen. De opdracht is/was er een tweede pc aan toe te voegen met een adv. prijs en die te laten optellen in de laatste kolom. Ik moet de variabelen gebruiken in het voorbeeld. Dus nog heel basic.
Maar hoe lukt het mij zonder nieuwe variabelen te maken een tweede regel in de tabel te maken met de tweede pc?
Alvast dank voor jullie hulp!
Hier is de code:
Ik ben nog maar net begonnen met het begrijpen van php. Alles ontstaan doordat men mij niet wilde helpen met het scripten van een xml feed.
Maar ik loop al direct tegen een probleem aan in het cursusboek.
Ik moest een simpele tabel overnemen. De opdracht is/was er een tweede pc aan toe te voegen met een adv. prijs en die te laten optellen in de laatste kolom. Ik moet de variabelen gebruiken in het voorbeeld. Dus nog heel basic.
Maar hoe lukt het mij zonder nieuwe variabelen te maken een tweede regel in de tabel te maken met de tweede pc?
Alvast dank voor jullie hulp!
Hier is de code:
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
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
<!DOCTYPE html>
<html lang="nl">
<head>
<title>Winkel Steffen</title>
</head>
<body>
<?php
$merk = "Toshiba";
$model = "A100";
$os = "windows xp";
$voorraad = 80;
$prijs = 999;
$totaal = 0;
$totaal += $prijs;
echo("<table border='1'> ".
"<caption>
<strong>SML laptops</strong>
</caption>
<thead>
<tr><th>merk</th><th>Model</th><th>Operating system</th><th>Voorraad</th><th>Prijs</th></tr>
<tbody>
<tr>
<td>" . $merk . "</td>" .
"<td>" . $model . "</td>" .
"<td>" . $os . "</td>".
"<td>". $voorraad . "</td>".
"<td>". $prijs . "</td>".
"</tr>
<tfoot>
<tr><td colspan='4'>Totaal</td><td>". $totaal . "</td></tr>
</tfoot>
</table>");
?>
</body>
</html>
<html lang="nl">
<head>
<title>Winkel Steffen</title>
</head>
<body>
<?php
$merk = "Toshiba";
$model = "A100";
$os = "windows xp";
$voorraad = 80;
$prijs = 999;
$totaal = 0;
$totaal += $prijs;
echo("<table border='1'> ".
"<caption>
<strong>SML laptops</strong>
</caption>
<thead>
<tr><th>merk</th><th>Model</th><th>Operating system</th><th>Voorraad</th><th>Prijs</th></tr>
<tbody>
<tr>
<td>" . $merk . "</td>" .
"<td>" . $model . "</td>" .
"<td>" . $os . "</td>".
"<td>". $voorraad . "</td>".
"<td>". $prijs . "</td>".
"</tr>
<tfoot>
<tr><td colspan='4'>Totaal</td><td>". $totaal . "</td></tr>
</tfoot>
</table>");
?>
</body>
</html>
Edit:
Ik heb code-tags geplaatst. Gelieve dit in het vervolg zelf toe te voegen aan je bericht.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Gewijzigd op 13/02/2018 10:28:00 door - Ariën -
Zonder een kant en klaar antwoord te geven:
Heb je al geleerd om array's te gebruiken?En deze met foreach of while() te doorlopen?
Heb je al geleerd om array's te gebruiken?En deze met foreach of while() te doorlopen?
Dat is dus de grap. Dat hoofdstuk komt na dit voorbeeld. Ik dacht dat de volgorde in het boek niet klopte. Maar wilde niet eigenwijs zijn ;-) Als dit met de bestaande variabelen niet lukt, dan zal dus de volgorde niet kloppen en ben ik iets rustiger :-)
Je kan niet de bestaande variabelen gebruiken, want die overschrijven elkaar.
Wel kan je met .= met die punt erbij steeds meer inhoud toevoegen aan je string:
Wel kan je met .= met die punt erbij steeds meer inhoud toevoegen aan je string:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$var = "Dit is ";
$var .= "een opgedeelde ";
$var .= "string";
echo $var; // Toont: Dit is een opgedeelde string
?>
$var = "Dit is ";
$var .= "een opgedeelde ";
$var .= "string";
echo $var; // Toont: Dit is een opgedeelde string
?>
Ok, dank voor je snelle reactie! Ik dacht dat ik iets fout deed. Ik ga eerst verder in het boek, de fouten neem ik maar voor lief dan, alhoewel het dit soort vragen oproept!
Ik hoop alleen na php een beetje te begrijpen dat ik de feed kan verwerken en stylen.
Ik hoop alleen na php een beetje te begrijpen dat ik de feed kan verwerken en stylen.
Gewijzigd op 13/02/2018 11:01:13 door Steffen The
Het stijl-werk doe je met CSS ;-)
Probeer jezelf direct aan te leren om html tussen single quotes (') te schrijven en in de HTML double quotes (") te gebruiken. Dus:
Ik zeg erbij dat het officieel mag om het te doen zoals je het nu doet maar door veel mensen andersom gedaan wordt en dus een soort van ongeschreven wet is. Hetzelfde geldt een beetje voor het keyword 'echo'. Je gebruikt haakjes erom heen en dat mag maar in de regel worden die meestal weggelaten.
Overigens bestaan er wel kleine verschillen tussen het gebruik van double quotes en single quotes binnen PHP. Het gaat dan met name om de escaping van variabelen. ( = gebruik van variabelen in een tekst)
Ik zeg erbij dat het officieel mag om het te doen zoals je het nu doet maar door veel mensen andersom gedaan wordt en dus een soort van ongeschreven wet is. Hetzelfde geldt een beetje voor het keyword 'echo'. Je gebruikt haakjes erom heen en dat mag maar in de regel worden die meestal weggelaten.
Overigens bestaan er wel kleine verschillen tussen het gebruik van double quotes en single quotes binnen PHP. Het gaat dan met name om de escaping van variabelen. ( = gebruik van variabelen in een tekst)
Ikzelf prefereer ook de techniek om single-quoted echo's te gebruiken. Puur vanwege het feit dat een dubbele quote er niet mee zal botsen, dat escaping bijna niet meer nodig is, en dat de dubbele quote gebruikelijk is in HTML.
Wel is het belangrijk dat je variabelen in een single-quoted echo netjes buiten quotes zet, anders worden de variabelen niet uitgevoerd:
Die zal letterlijk dus Er is er eentje jarig, $var! geven.
En als je het goed doet, door je quotes voor de variabelen af te sluiten en deze met een punt te koppelen:
Dan zie je:
Er is er eentje jarig, Hoera!
Edit: Bleef een uitroepteken hangen ;-)
Wel is het belangrijk dat je variabelen in een single-quoted echo netjes buiten quotes zet, anders worden de variabelen niet uitgevoerd:
Die zal letterlijk dus Er is er eentje jarig, $var! geven.
En als je het goed doet, door je quotes voor de variabelen af te sluiten en deze met een punt te koppelen:
Dan zie je:
Er is er eentje jarig, Hoera!
Edit: Bleef een uitroepteken hangen ;-)
Gewijzigd op 13/02/2018 13:02:21 door - Ariën -
Je kunt te allen tijde een PHP-blok afsluiten en later weer voortzetten. Zelfs als je in een for-loop HTML aan het weergeven bent. Er is dus geen enkele reden om statische lappen op die manier uit te draaien, dit dient geen enkel doel want de structuur van de tabel ligt helemaal vast.
Het zou een ander verhaal worden als de tabel echt dynamisch gegenereerd wordt, maar dat is dus alleen nodig als deze een dynamisch karakter heeft, wat niet het geval is.
Je kunt dus net zo goed deze HTML uitschrijven... als simpelweg HTML:
Dit heeft als bijkomend voordeel dat deze een stuk beter leesbaar is. In dat geval had je mogelijk direct gezien dat er een afsluitende </thead>- en </tbody>-tag ontbrak.
@Ariën: achter "Hoera" staan (ineens) twee uitroeptekens, dat lijkt mij niet kloppen.
Over het vraagstuk zelf: mogelijk is het hier de bedoeling dat je simpelweg een tweede tabelrij toevoegt door tussendoor (in een PHP-blok) de variabelen andere waarden te geven, met als extra bewerking het ophogen van de totaalprijs met de prijs van de huidige tabelrij. Misschien is dit een opzet naar for-loops, misschien is dit al behandeld, wie weet. Het zou niet de eerste keer zijn dat voorbeelden of opgaven in cursusboeken onzinnig of gewoon fout zijn.
Het zou een ander verhaal worden als de tabel echt dynamisch gegenereerd wordt, maar dat is dus alleen nodig als deze een dynamisch karakter heeft, wat niet het geval is.
Je kunt dus net zo goed deze HTML uitschrijven... als simpelweg HTML:
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
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
<table border="1">
<caption>SML laptops</caption>
<thead>
<tr>
<th>merk</th>
<th>Model</th>
<th>Operating system</th>
<th>Voorraad</th>
<th>Prijs</th>
</tr>
</thead>
<tbody>
<tr>
<td><?php echo $merk ?></td>
<td><?php echo $model ?></td>
<td><?php echo $os ?></td>
<td><?php echo $voorraad ?></td>
<td><?php echo $prijs ?></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="4">Totaal</td>
<td><?php echo $totaal ?></td>
</tr>
</tfoot>
</table>
<caption>SML laptops</caption>
<thead>
<tr>
<th>merk</th>
<th>Model</th>
<th>Operating system</th>
<th>Voorraad</th>
<th>Prijs</th>
</tr>
</thead>
<tbody>
<tr>
<td><?php echo $merk ?></td>
<td><?php echo $model ?></td>
<td><?php echo $os ?></td>
<td><?php echo $voorraad ?></td>
<td><?php echo $prijs ?></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="4">Totaal</td>
<td><?php echo $totaal ?></td>
</tr>
</tfoot>
</table>
Dit heeft als bijkomend voordeel dat deze een stuk beter leesbaar is. In dat geval had je mogelijk direct gezien dat er een afsluitende </thead>- en </tbody>-tag ontbrak.
@Ariën: achter "Hoera" staan (ineens) twee uitroeptekens, dat lijkt mij niet kloppen.
Over het vraagstuk zelf: mogelijk is het hier de bedoeling dat je simpelweg een tweede tabelrij toevoegt door tussendoor (in een PHP-blok) de variabelen andere waarden te geven, met als extra bewerking het ophogen van de totaalprijs met de prijs van de huidige tabelrij. Misschien is dit een opzet naar for-loops, misschien is dit al behandeld, wie weet. Het zou niet de eerste keer zijn dat voorbeelden of opgaven in cursusboeken onzinnig of gewoon fout zijn.
Gewijzigd op 13/02/2018 13:01:41 door Thomas van den Heuvel
Mensen, super dank voor de extra reacties! Hier kan ik mee verder.
Omdat ik het thuis doe en niet de gelegenheid heb de juf te vragen "of het boek wel klopt" is thuisstudie soms heel lastig. Want je gaat dan aan jezelf twijfelen, terwijl je bijna zeker weet dat het boek niet juist is.
Omdat ik het thuis doe en niet de gelegenheid heb de juf te vragen "of het boek wel klopt" is thuisstudie soms heel lastig. Want je gaat dan aan jezelf twijfelen, terwijl je bijna zeker weet dat het boek niet juist is.
Leuk dat je enthousiast bent Steffen. Wat mij betreft mag je je vragen hier op het forum plaatsen wanneer je na een rondje google geen duidelijkheid krijgt over bepaalde zaken.
Komt nog iets in mijn gedachte langs nadat Thomas zo een mooi voorbeeld gegeven heeft over hoe je HTML kunt opbouwen (eigenlijk laat hij hier gewoon een template zien). Plaats BOVEN de allereerste HTML regel je PHP code die je nodig hebt om je 'output' voor te bereiden. dan hou je je programma-logica zo veel mogelijk gescheiden van je template.
Komt nog iets in mijn gedachte langs nadat Thomas zo een mooi voorbeeld gegeven heeft over hoe je HTML kunt opbouwen (eigenlijk laat hij hier gewoon een template zien). Plaats BOVEN de allereerste HTML regel je PHP code die je nodig hebt om je 'output' voor te bereiden. dan hou je je programma-logica zo veel mogelijk gescheiden van je template.
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
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
<?php
$merk = "Toshiba";
$model = "A100";
$os = "windows xp";
$voorraad = 80;
$prijs = 999;
$totaal = 0;
$totaal += $prijs;
?>
<table border="1">
<caption>SML laptops</caption>
<thead>
<tr>
<th>merk</th>
<th>Model</th>
<th>Operating system</th>
<th>Voorraad</th>
<th>Prijs</th>
</tr>
</thead>
<tbody>
<tr>
<td><?php echo $merk ?></td>
<td><?php echo $model ?></td>
<td><?php echo $os ?></td>
<td><?php echo $voorraad ?></td>
<td><?php echo $prijs ?></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="4">Totaal</td>
<td><?php echo $totaal ?></td>
</tr>
</tfoot>
</table>
$merk = "Toshiba";
$model = "A100";
$os = "windows xp";
$voorraad = 80;
$prijs = 999;
$totaal = 0;
$totaal += $prijs;
?>
<table border="1">
<caption>SML laptops</caption>
<thead>
<tr>
<th>merk</th>
<th>Model</th>
<th>Operating system</th>
<th>Voorraad</th>
<th>Prijs</th>
</tr>
</thead>
<tbody>
<tr>
<td><?php echo $merk ?></td>
<td><?php echo $model ?></td>
<td><?php echo $os ?></td>
<td><?php echo $voorraad ?></td>
<td><?php echo $prijs ?></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="4">Totaal</td>
<td><?php echo $totaal ?></td>
</tr>
</tfoot>
</table>
GM!
Mijn enthousiasme is ontstaan uit irritatie :-) Wij hebben een portaal waar wij rijwielen in kunnen tonen (extern). Vooraf beloofden ze dat wij zelf ook een script zouden krijgen die wij op onze eigen site konden plaatsen. Dit bleek achteraf een xml-feed en dus geen script. Je zal begrijpen dat dat voor mij even andere koek is. Ik heb me suf gegoogled naar een voor mij te begrijpen load-script. Ik heb wel een soort van script verkregen via een hulp, maar ik wil hem zelf begrijpen. Vandaar deze "cursus". Het boek is alleen niet een topper merk ik steeds.
Nogmaals dank voor jullie reacties!
Mijn enthousiasme is ontstaan uit irritatie :-) Wij hebben een portaal waar wij rijwielen in kunnen tonen (extern). Vooraf beloofden ze dat wij zelf ook een script zouden krijgen die wij op onze eigen site konden plaatsen. Dit bleek achteraf een xml-feed en dus geen script. Je zal begrijpen dat dat voor mij even andere koek is. Ik heb me suf gegoogled naar een voor mij te begrijpen load-script. Ik heb wel een soort van script verkregen via een hulp, maar ik wil hem zelf begrijpen. Vandaar deze "cursus". Het boek is alleen niet een topper merk ik steeds.
Nogmaals dank voor jullie reacties!
Als je bekend bent met de basis van PHP, en hoe array's werken en hoe je die moet doorlopen, dan is SimpleXML best wel simpel te noemen:
http://php.net/manual/en/simplexml.examples-basic.php
http://php.net/manual/en/simplexml.examples-basic.php
Klopt, alleen dan voor mij standalone="no" . Een vast xml kon ik wel bewerken met xhtml. Maar deze feed veranderd continu. Vandaar denk ik dat php het beste is?
Gm,
Als $url ="mijn xml feed" is.
Kan ik dan ook met de opdracht : file_get_contents($url) verder?
Ik heb een voorbeeld gekregen om de feed uit te lezen. Daarin wordt met preg_match gewerkt. En preg_match wordt nu net lastig omschreven in het boek. Is preg_match te way to go, of kan het eenvoudiger?
Het is mij te makkelijk een op een het voorbeeld te plakken, ik wil het graag snappen :-)
Alvast dank voor jullie info!
Als $url ="mijn xml feed" is.
Kan ik dan ook met de opdracht : file_get_contents($url) verder?
Ik heb een voorbeeld gekregen om de feed uit te lezen. Daarin wordt met preg_match gewerkt. En preg_match wordt nu net lastig omschreven in het boek. Is preg_match te way to go, of kan het eenvoudiger?
Het is mij te makkelijk een op een het voorbeeld te plakken, ik wil het graag snappen :-)
Alvast dank voor jullie info!
Klopt, en dan kan je met simplexml_load_string() de XML inladen, en verder uitlezen met SimpleXML. Het gebruik van reguliere expressies is duur en onnodig.
Gewijzigd op 20/02/2018 12:47:19 door - Ariën -
- Ariën - op 20/02/2018 12:47:05:
Klopt, en dan kan je met simplexml_load_string() de XML inladen, en verder uitlezen met SimpleXML. Het gebruik van reguliere expressies is duur en onnodig.
Het lukt me nu eindelijk de feed uit te lezen. Maar in de feed zitten elementen met een url naar afbeeldingen. Als ik die echo/ print krijg ik natuurlijk letterlijk die url te zien :-)
Maar met welke opdracht geef ik die bewuste afbeelding weer?
Basiskennis van HTML: De img-tag ;-)
- Ariën - op 25/02/2018 18:18:51:
Basiskennis van HTML: De img-tag ;-)
Van het element een variabele weergeven als bijv:
<img src="$picture" >
Verwijzend naar het script?
$picture moet de URL van de afbeelding bevatten.
Dank u! Ik pruts weer verder :-)




