<?
//we gaan eerst uit de url halen om welke tafel het hier gaat
//surf daarom naar www.jouwsite.nl/tafels.php?tafel=10 om de tafel van 10 uit te rekenen (en pas de url naar je eigen situatie aan)
$tafel=$_GET['tafel'];
//even laten weten om welke tafel het gaat :
echo "tafel van ".$tafel."";
//dan het getal waar we nu zijn even op 0 zetten
$gedaan="0";
//gezien we tot 10x*tafel* willen uitrekenen laten we hem 10x loopen
while ($gedaan<=10) {
//het antwoord uitrekenen
$uitkomst = $tafel * $gedaan;
//de som echo'en
echo "".$tafel." keer ".$gedaan." is ".$uitkomst."<br>";
//vergeet de br aan het einde niet ;)
//1tje bij gedaan optellen
$gedaan++;
//en de while loop afsluiten
}
?>
Als je van de method die je nu als POST hebt GET maakt, dan worden de waardes verstuurd als GET's, aangezien je tafel-veld dezelfde naam heeft als de GET die wordt opgevraagd in het andere script hoef je in je formuliertje alleen van "post", "get" te maken.
@Vincent: Lees de commentaar regels ook even door.
<?php
// Start gewoon met <?php en niet met <?
// Als de server geen shorttags ondersteunt heb je namelijk een probleem
// Zet tijdens het testen ALTIJD errorhandling aan
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// Input ALTIJD checken
if(isset($_GET['tafel']) and is_numeric($_GET['tafel']))
{
// Indien de check okee is kan je de variabele gebruiken
$tafel=$_GET['tafel'];
}
else
{
// Bij niet okee stop je er zelf een getal in (random 1-10)
$tafel = rand(1, 10);
}
// Gebruik bij echo ENKELE quotes, zodat je de html-dubbele-quotes niet hoeft te escapen
// En gebruik spaties om het overzichtelijker te maken
// Gebruik geen zinloze quotes zoals echo "" . $var; ...... gewoon echo $var;
echo 'Tafel van ' . $tafel . '<br/><br/>';
// Getallen moeten NIET tussen quotes
$gedaan = 0;
while ($gedaan <= 10) // Zelf zou ik een for() gebruiken maar okee
{
// Het antwoord uitrekenen hoeft niet in een aparte $var, dat kan direct
echo $gedaan . ' keer ' . $tafel . ' is ' . $gedaan * $tafel . '<br>';
// Verhogen
$gedaan++;
}
// Maak het formulier
echo '<br/>';
echo '<form action="" method="get">';
echo 'Geef een getal in: <input type="text" name="tafel">';
echo '<input type="submit" value="verstuur">';
echo '</form>';
while ($gedaan<=10) {
$uitkomst = $tafel * $gedaan;
echo "".$tafel." keer ".$gedaan." is ".$uitkomst."<br>";
$gedaan++;
}
}
?>
// EDIT
Ik zie wel dat je bij de Action van het FORM TafelS hebt staan; moet dit geen Tafel zijn, aangezien je het aan het begin van dit topic hebt over:
@Santhe:
Dankje wel.. meteen wat bijgeleerd :)
maar je zei dit: while ($gedaan <= 10) // Zelf zou ik een for() gebruiken maar okee
Daar komt meteen een nieuwe vraag naar boven.. die ik al een tijd had:
Wanneer gebruik je nou: while
wanneer: for
en wanneer foreach?
@Dennis:
Bedankt hij werkt goed :)
alleen dit:
tafels.php?tafel=(het nummer)
moet volgens mij:
tafels.php?tafel=
zo want hij gaat anders raar doen ;)
?
Onbekende gebruiker
10-02-2007 20:33
Foreach:
Voor elke item in de aangegeven array execute deze code.
*Dus als je met arrays werkt. For loop:
De for loop is gewoon een while loop met een beetje meer code toegevoegd.
*Je kunt kiezen: For loop of while loop While loop:
De functie van de while loop is om een taak te doen over een lange tijd als de aangegeven conditie statement true is.
*Iets doen als een statement true is (tabellen uit database halen bijvoorbeeld) Do while:
Een do while loop is een iets bewerkte versie van while loop. Aan de ander hand, een do while loop is altijd één keer geëxecuted in zijn blok van code. Dit is omdat de conditie statement niet is gechecked totdat het desbetreffende code één keer is uitgevoerd.
*Kun je kiezen: Do while loop of while loop.
While - Zolang er nog iets komt ga je door. Bijvoorbeeld bij het opvragen uit de database. Je weet niet hoeveel er is gevonden maar je wilt alles zien.
Foreach - Voor elk ... Is heel goed te gebruiken in combinatie met array's. Je kan dan heel eenvoudig elke waarde bekijken.
For - Dat ligt eigenlijk al vast. Iets 10 keer doen dan gebruik je for(). Voor 1 t/m 10 doe dit of doe dat.