Page 1 sur 1

Décoder un calcul

Posté : 25 mai 2005, 18:30
par lena
Bonjour, je suis débutante.
Pour le moment je me débrouille bien pour modifier du code PHP existant.
J'aurais besoin que l'on m'explique le calcul de ce code

Code : Tout sélectionner

<?php $images = HTML_agent::getImages($obj); $pn=0; $z=0; for($x=4;$x<14;$x+=2) { if($images[$x]!="") $z++; } for($i=1,$x=4,$y=3;$i<7;$i++,$x+=2,$y+=2) { if($images[$x]=="") { continue; } else{ $pn++; ?>
je dois modifier pour que le résultat donne 8 au lieu de 6.
( le code affiche 6 images moi je veux qu'il en affiche 8 )
J'ai changé le chiffre 14 pour 18 et cela m'affiche le bon nombre d'image sur le backend mais pas dans le frontend.
J'ai changé le $i<7 pour $i<9 mais cela n'a pas rien changé.

merci

Posté : 25 mai 2005, 18:45
par Cyrano
J'ai pas tout compris dans ce que tu veux obtenir, alors j'ai commenté ton code pour que tu puisses mieux l'appréhender et le modifier selon ce que tu veux faire:
<?php

$images = HTML_agent::getImages($obj);
$pn=0; $z=0;
/* Boucle: 
    partant de x = 4; 
    Tant que x est inférieur à 14, on exécute le contenu; 
    On incrémente x donc : x = (x+1)  
*/
for($x=4;$x<14;$x+=2)
{
    if($images[$x]!="") $z++;
}
/* Boucle : 
partant de :
    $i = 1
    $x = 4
    $y = 3
Tant que $ est inférieur à 7, on exécute le contenu
Puis on incrémente :
    $i = $i + 1 (donc devient 2, puis 3 etc jusqu'à 7 et la boucle s'arrête)
    $x = $x + 2 (donc devient 6, puis 8 etc jusqu'à 12 la boucle s'arrêtant et on ne se rand pas à 14)
    $y = $y + 2 (même chose que pour $x) 
*/
for($i=1,$x=4,$y=3;$i<7;$i++,$x+=2,$y+=2)
{
    /* Si la valeur correspondant à $image[$i] est une chaine vide */
    if($images[$x]=="")
    {
        /* On continue la boucle */
        continue;
    }
    else
    {
        /* On incrémente $pn donc $pn = $pn + 1 */
        $pn++;
    }
}
?>
Voilà, à partir de là, si tu n'y arrives pas, reviens avec les détails nécessaires.

Posté : 25 mai 2005, 18:52
par lena
Salut Cyrano,

merci d'avoir pris le temps de m'aider

Un gros merci

A+

Posté : 25 mai 2005, 19:08
par Cyrano
[Résolu] ?

Posté : 27 mai 2005, 23:11
par Invité
Salut,

Non, j'ai pas réussi ..
En fait si je change le 7 pour un chiffre supérieur ex 9, la boucle ne devrait pas finir ... alors pourquoi arrête-elle a 6 ?

Je vais essayer de voir quelle autre bout code pourrait entrer en interaction avec ceci.

A+

Posté : 28 mai 2005, 09:17
par Cyrano
Ok, on va décomposer une boucle for:

Code : Tout sélectionner

for( $i=1,$x=4,$y=3; $i<7; $i++,$x+=2,$y+=2) | point de départ | maximum | incrémentation
Le maximum fixé dans ton cas est à 7 et on vérifie que le pointeur utilisé est inférieur à 7, donc à 6, on fait un tour et à 7 on sort de la boucle