PHP compter valeur

Bonjour,
voilà mon code

$taille=$_GET['taille'];

if ($taille <=0)
{
for ($i = 1; $i <= 10; $i++)
{
for ($k = 1; $k <= $i; $k++)
{
echo "* ";
}
echo '<br />';
}
}
if ($taille >20)
{
echo " mettre valeur inférieur a 20";
echo "</p>";

}
else if ($taille <20 and $taille >0)
{
for ($i = 1; $i <= $taille; $i++)
{
for ($k = 1; $k <= $i; $k++)
{
echo "* ";
}
echo '<br />';
}
}

exemple il donne ceci :

*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * * * *

J'aimerais compter le nombre d'étoiles qu'il y a ... comment on fait pour compter les valeurs, je bloque

J'ai testé ceci mais ce n'est pas ça je pense
for ($i = 1; $i<=$taille; $i++)
{
$total=$i + ($i+1) ;
echo $total;
}

Configuration: Windows XP Internet Explorer 6.0

5 réponses

  1. Oui en effet, remplace ce code :
    else if ($taille > 20) 
    { 
    	echo "Mettre une valeur inférieure ou égale à 20 !"; 
    	echo "<br />";
    	$taille = 20;
    } 


    Par ceci si tu veux qu'il s'arrête :
    else if ($taille > 20) 
    { 
    	echo "Mettre une valeur inférieure ou égale à 20 !"; 
    	exit();
    } 
    1. oui , mais il y a un petit soucis quand le nombre que je rentre en paramètre est supérieur a 20 il ne faut PAS qu'il m'affiche de triangle, dans ce cas là si je comprends bien il m'affiche 20 étoiles quand meme
      1. Bonjour, voici un exemple pour compter tes étoiles, j'ai améliorer la gestion de ton script aussi :

        <?php
        if(isset($_GET['taille']))
        	$taille = intval($_GET['taille']); 
        else
        	$taille = 10;
        
        if ($taille <= 0) 
        { 
        	echo "Mettre une valeur supérieure à 0 !";
        	$taille = 10;
        } 
        else if ($taille > 20) 
        { 
        	echo "Mettre une valeur inférieure ou égale à 20 !"; 
        	echo "<br />";
        	$taille = 20;
        } 
        
        $compteur_etoiles = 0;
        for ($i = 1; $i <= $taille; $i++) 
        { 
        	for ($k = 1; $k <= $i; $k++) 
        	{ 
        		echo "* "; 
        		$compteur_etoiles++;
        	} 
        	echo '<br />'; 
        }  
        echo "<p>Il y a ".$compteur_etoiles." étoiles.</p>";
        ?>


        Exemple en mettant page.php?taille=7 :
        * 
        * * 
        * * * 
        * * * * 
        * * * * * 
        * * * * * * 
        * * * * * * * 
        Il y a 28 étoiles.
        1. Coucou !

          Ça avance à ce que je vois :)

          ton calcul du total n'est pas logique. Tu devrais ajouter $i à ton total à chaque boucle, plutôt que de calculer $i+($i+1), c'est à dire 2*$i+1. Qu'est-ce que ce 2*$i+1 représente ?
          Et tu ne devrais pas afficher le total à chaque passage dans la boucle, mais seulement une fois sorti

          Mais le plus simple c'est d'augmenter $total de 1 chaque fois que tu fais echo '*'. Même si tu changes d'algorithme, ça comptera toujours les étoiles.