Synology-Forum.nl

Overige software => Overige software => Topic gestart door: a.m.j.janssen op 08 augustus 2019, 22:11:41

Titel: PHP-loop
Bericht door: a.m.j.janssen op 08 augustus 2019, 22:11:41
Hoi,

Hoe kan ik in het volgende stukje PHP-script de 100 vervangen door een teller i die bijv van 1 tot 100 loopt?

WHILE $i<= 100 {
     if (isset($_POST['dn100'])) { $dln_fase100="PL"; }
     $i=$i+1;
}

Er moet dan het volgende uitkomen:

if (isset($_POST['dn1'])) { $dln_fase1="PL"; }
if (isset($_POST['dn2'])) { $dln_fase2="PL"; }
.
.
if (isset($_POST['dn100'])) { $dln_fase100="PL"; }

Ik krijg de juist syntax niet voor elkaar, PHP blijft maar schelden....
Alvast bedankt voor de tip.
Mvg
Titel: Re: PHP-loop
Bericht door: Plerry op 09 augustus 2019, 08:49:51
Met deze constructie moet je de loop counter wel $i=1 maken voor je de while-loop ingaat.
Anders is $i ongedefinieerd en crasht de while-loop.

Als het aantal malen dat je de loop moet doorlopen tevoren bekend is (zoals hier) kan je ook een for-next loop gebruiken.
Dan hoef je de loop-counter niet tevoren een waarde toe te kennen.
Titel: Re: PHP-loop
Bericht door: Wyodor op 09 augustus 2019, 08:52:01
De while loop is niet goed. Iets met haakjes.

https://www.php.net/manual/en/control-structures.while.php

In geval van twijfel, raadpleeg de handleiding,
Titel: Re: PHP-loop
Bericht door: Wyodor op 09 augustus 2019, 10:01:33
Hier een resultaat. Heb wat extras toegevoegd voor de duidelijkheid en omdat ik niet weet waar POST vandaan komt.

<?php

$y 
33;

$_POST['dn' $y] = $y;

$i 0;

while ( 
$i <= 100 )
{
if ( isset( $_POST['dn' $i] ) )
{
echo 'post (' $i ') ' $_POST['dn' $i] . '<br />';
${'dln_fase'} . $i "PL_" $i;
break;
}
$i++;
}

echo 
'Resultaat : ' $_POST['dn' $y]    . ' : ' . ${'dln_fase'} . $i '<br />';

?>

EDIT : code aangepast.
Titel: Re: PHP-loop
Bericht door: a.m.j.janssen op 10 augustus 2019, 10:34:43
Hallo Wyodor,
ik ga het onmiddellijk proberen, je hoort van me of het is gelukt.
Alvast bedankt.