for next loop

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Raymond Colin

Raymond Colin

09/02/2013 18:43:39
Quote Anchor link
Hallo Iedereen

Is het mogelijk om manueel in te geven hoeveel keer een for loop moet doorlopen worden ?

for ($a=1; $a<= X ; $a++)

de waarde X wil ik aan het begin van het programma ingeven en dat wil maar niet lukken.

Kan iemand mij helpen aub
 
PHP hulp

PHP hulp

26/01/2020 23:04:56
 
Obelix Idefix

Obelix Idefix

09/02/2013 18:54:05
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$x = 5;
for($a=1;$a<=$x;$a++)

Werkt niet?
 
Raymond Colin

Raymond Colin

09/02/2013 19:50:50
Quote Anchor link
Dat werkt wel, maar de waarde is is niet altijd dezelfde en ik wil die met een input ingeven.
 
Obelix Idefix

Obelix Idefix

09/02/2013 21:16:48
Quote Anchor link
En waar komt de waarde dan vandaan?
Vanuit een database? Vanuit een formulier?
Principe blijft verder gelijk. Ken (in mijn voorbeeld) de waarde toe aan een variabele en het zou moeten werken.
Kortom: leg (duidelijker) uit waar je op vastloopt.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

09/02/2013 23:31:46
Quote Anchor link
met een input veld van een formulier bedoel je?

dan heb je twee php pagina's nodig.

één met een <form> ofwel formulier, en één die het formulier afhandeld. in die laatste kun je dan die lus maken die een aantal keer dooplopen wordt afhankelijk van de waarde die in het formulier ingevuld is.

Kortom je zou je moeten verdiepen in het maken van formulieren: http://www.phptuts.nl/view/39/8/
 
Raymond Colin

Raymond Colin

11/02/2013 08:28:48
Quote Anchor link
Hallo
Bedankt voor de reacties.
Frank, je omschrijft precies wat ik bedoel. In een formulier geef ik in hoeveel keer een stukje programma moet doorlopen worden.
De vraag is Hoe krijg ik de ingegeven waarde in het FOR .....$b opdracht ? het formulier op zich maken, is het probleem niet.

for $a =1 ;$a<=$b ; $a++

Groetjes
 
Mebus  Hackintosh

Mebus Hackintosh

11/02/2013 08:54:53
Quote Anchor link
Frank Nietbelangrijk op 09/02/2013 23:31:46:
met een input veld van een formulier bedoel je?

dan heb je twee php pagina's nodig.

één met een <form> ofwel formulier, en één die het formulier afhandeld. in die laatste kun je dan die lus maken die een aantal keer dooplopen wordt afhankelijk van de waarde die in het formulier ingevuld is.

Kortom je zou je moeten verdiepen in het maken van formulieren: http://www.phptuts.nl/view/39/8/


Kan toch gewoon op 1 pagina? Als je je code gescheiden wilt houden is het netjes natuurlijk maar dan kan je ook gebruik maken van templates..

Op de vraag:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php

if($_SERVER['REQUEST_METHOD'] == 'POST')
{


  if(isset($_POST['waarde']) && strlen(trim($_POST['waarde'])) != 0 && is_numeric($_POST['waarde']) && $_POST['waarde'] > 0)
  {

    for($a=0;$a<$_POST['waarde'];$a++)
    {

      echo $a;
    }

  }

}


?>


Kan het niet testen maar dit zou moeten werken.. Gezien je zelf zegt geen problemen hebt met hoe je forms kan maken laat ik dat aan jou over.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

11/02/2013 12:23:34
Quote Anchor link
Mebus het kan natuurlijk op één pagina maar de kunst is om iemand die er nog niet zo veel ervaring mee heeft net het zetje te geven dat ie nodig heeft. De boel gescheiden houden op twee verschillende pagina's is voor zo iemand overzichtelijker en het geeft beter de werking weer
 
Mebus  Hackintosh

Mebus Hackintosh

11/02/2013 12:30:39
Quote Anchor link
Frank Nietbelangrijk op 11/02/2013 12:23:34:
Mebus het kan natuurlijk op één pagina maar de kunst is om iemand die er nog niet zo veel ervaring mee heeft net het zetje te geven dat ie nodig heeft. De boel gescheiden houden op twee verschillende pagina's is voor zo iemand overzichtelijker en het geeft beter de werking weer

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php

if($_SERVER['REQUEST_METHOD'] == 'POST')
{


  if(isset($_POST['waarde']) && strlen(trim($_POST['waarde'])) != 0 && is_numeric($_POST['waarde']) && $_POST['waarde'] > 0)
  {

    for($a=0;$a<$_POST['waarde'];$a++)
    {

      echo $a;
    }

  }

}


?>

<form method="post" action="">
<input type="text" name="waarde" />
<input type="submit" value="Versturen" />
</form>


Is toch hetzelfde en helemaal niet zo verwarrend? Maar ja, het kan misschien wel handig zijn zoals hoe jij het zegt..
Gewijzigd op 11/02/2013 12:31:09 door Mebus Hackintosh
 
Frank Nietbelangrijk

Frank Nietbelangrijk

11/02/2013 12:34:01
Quote Anchor link
het formulier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<html>
<body>
<form method="post" action="result.php">
<input type="text" name="aantal" />
<input type="submit" value="Go!" />
</form>
</body>
</html>


opslaan als result.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
<body>
<?php

$aantal
= 0;
if(isset($_POST['aantal']))
    $aantal = intval($_POST['aantal']);
    
if($aantal > 0) {
    for($i = 0 ; $i < $aantal ; $i++) {
        echo 'regel '.$i.'<br />';
    }
}


?>

</body>
</html>
 
Raymond Colin

Raymond Colin

11/02/2013 13:08:54
Quote Anchor link
Hallo Frank en Mebus

Het doet me plezier jullie reacties te lezen. Als de opgegeven codes kloppen zal het wel lukken denk ik.
Vanavond kan ik het uitproberen en dan laat ik wel weten hoe het afloopt.
grts
Mon
 
Mebus  Hackintosh

Mebus Hackintosh

11/02/2013 14:08:23
Quote Anchor link
@Frank, ik vind niet dat je intval moet gebruiken om te kijken of een variabele een nummer/integer is.. Gebruik dan is_numeric of is_int.. Als ik kijk op de docuementatie website van php.net is het om het nummer te verkrijgen van een variabele en niet om te kijken of een variabele een nummer/integer is.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php

if($_SERVER['REQUEST_METHOD'] == 'POST')
{


    if(isset($_POST['nummer']) && is_int((int) $_POST['nummer']) && $_POST['nummer'] > 0)
    {

        for($a=0;$a<$_POST['nummer'];$a++)
        {

            echo $a.'<br />'.PHP_EOL;
        }
    }
}


?>

<form method="post" action="">
<input type="text" name="nummer" /><br />
<input type="submit" value="Versturen" />
</form>
 
Frank Nietbelangrijk

Frank Nietbelangrijk

11/02/2013 14:24:46
Quote Anchor link
Hey Mebus,

intval of is_int zijn wat mij betreft bijna vergelijkbaar, alleen de een geeft true or false en de ander een integer.
is_numeric echter geeft ook true wanneer je een float of een Wetenschappelijke notatie gebruikt.

Het is natuurlijk maar wat je als programmer wilt. Ik wil hier uitsluiten dat er iets anders wordt ingevuld dan een positief geheel getal. met intval krijg ik altijd een geheel getal (integer). met if($aantal > 0) sluit ik negatieve getallen en de nul uit. Mijn doel is nu bereikt en daar gaat het om.
 
Kris Peeters

Kris Peeters

11/02/2013 14:51:49
Quote Anchor link
Mebus Hackintosh op 11/02/2013 14:08:23:
@Frank, ik vind niet dat je intval moet gebruiken om te kijken of een variabele een nummer/integer is..


intval gebruik je om te casten (= een waarde forceren naar een bepaald dataType), niet om te evalueren.

Jij cast trouwens ook.

intval($_POST['waarde'])
is het zelfde als
(int) $_POST['waarde']

De omstandigheden waarbij je het gebruikt, is wanneer je een integer verwacht, no matter what.
intval garandeert je dat de waarde niets anders dan een integer zal zijn (default-waarde is nul).

Kwestie van je if() wat korter en leesbaarder te houden, lijkt dit me wenselijk.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
...
$aantal = isset($_POST['waarde']) ? intval($_POST['waarde']) : 0;
if ($aantal > 0) {
...
}
...

?>
Gewijzigd op 11/02/2013 14:52:40 door Kris Peeters
 
Raymond Colin

Raymond Colin

11/02/2013 18:10:42
Quote Anchor link
Hallo Frank, Mebus en Kris

Deze middag heb ik de code die ik van Mebus ontving in mijn programma ingepast en tot mijn eigen verbazing werkte het na een paar aanpassingen perfect. Enkel numerieke waarden worden aangenomen voor de loop en in mijn tabellen worden de gewenste aantallen rijen netjes ingevuld.

Of die code nu korter kan is voor mij op dit ogenblik niet belangrijk. Het belangrijkste is dat ik begrijp wat er gebeurd.

Heel erg bedankt
R Colin
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.