Door
Steffen The
op 13-02-2018 10:21
gewijzigd op 13-02-2018 10:28
5.794 views
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!
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 :-)
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.
Probeer jezelf direct aan te leren om html tussen single quotes (') te schrijven en in de HTML double quotes (") te gebruiken. Dus:
<?php
echo('<table border="1">');
?>
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.
<?php
echo '<table border="1">';
?>
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:
<?php
$var = 'Hoera';
echo 'Er is er eentje jarig, $var!';
?>
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:
<?php
$var = 'Hoera';
echo 'Er is er eentje jarig, '.$var.'!';
?>
Dan zie je: Er is er eentje jarig, Hoera!
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.
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.
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.