Vous n'êtes pas identifié(e).
Bonjour,
j'ai realisé un formulaire permettant d'entrer des valeurs numériques. Je souhaite récupérer ces valeurs dans mon script , afin d'afficher la somme et la moyenne dans la page utilisateur. Je débute aussi si quelqu'un pouvait m'aider à réaliser ce script php ce serait sympa, car je tourne en rond et j'ai toujours des erreurs .
Je glisse ici le début de mon script ici ;
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
<title>moyenne</title></head>
</head>
<body>
<h2>Formulaire</h2>
<form action="montest2.php" method="POST">
<table>
<tr>
<td><input type="text" name="tab_chiffres[]"value=""/></td></tr>
<tr><td><input type="text" name="tab_chiffres[]"value=""/></td></tr>
<tr><td><input type="text" name="tab_chiffres[]"value=""/></td></tr>
<tr><td><input type="text" name="tab_chiffres[]"value=""/></td></tr>
<tr><td><input type="text" name="tab_chiffres[]"value=""/></td></tr>
</table>
<input type="submit" name="soumettre">
</form>
<?php
echo "liste des valeurs entées : ";
print_r($_POST['tab_chiffres']); //Affiche toutes les valeurs du tableau en "brut"
?>
</body>
</html>
Merci de votre aide
Hors ligne
et il est ou ton problème ?
a++
Hors ligne
Pour la somme c'est tout simple : array_sum()
Pour la moyenne ce n'est que l'application du calcul mathématique, en gros passer de l'algorythme au code. Quel est ton algo ?
Hors ligne
Merci de m'avoir répondu aussi vite.
ok pour array_sum - j'ai rajouté à la suite de mon script le code ci dessous.
<?php
$tab_chiffres[0] = "33";
$tab_chiffres[1] = "33";
$tab_chiffres[2] = "33";
$tab_chiffres[3] = "33";
$tab_chiffres[4] = "33";
echo array_sum ($tab_chiffres);
?>
Mon problème est le suivant : quand je change les valeurs numériques dans le formulaire - je n'obtiens pas le résultat attendu.
A plus
Hors ligne
a savoir quand tu utilise des " il s'agit d'une chaine de caractère et non d'un chiffre.
la bonne syntaxe est donc : $tab_chiffres[0] = 33;
Les données provenant d'un formulaire sont aussi des chaines de caractères. Il serais intéressant de savoir si le champ ne contient que des chiffres (pour ne pas avoir des choses exubérantes). Pour cela tu peut utiliser une expression régulière avec simplement la classe [0-9] ou utiliser simplement la fonction is_numeric.
une fois que tu a la somme avec array_sum il "suffit" de diviser par le nombre d'élement du tableau (fonction count()) pour avoir la moyenne arithmétique simple sans aucune pondération (la c'est plus complexe).
pour vérifier tous les élément d'un tableau en une seul fois la fonction array_walk te sera utile
@+
Il en faut peu pour être heureux pompompompompompompompompompompom
Hors ligne
Bonjour,
Super j'ai reussi à faire ce que je voulais.
Donc pour la moyenne j'ai mis le code suivant :
<?php
echo "Afficher la moyenne <br>" ;
echo array_sum ($tab_chiffres)/count($tab_chiffres);
?>
Ca fonctionne - merci encore et je passe à l'étape suivante
@+
Hors ligne
Bonjour,
j'ai encore un problème. Je ne comprends pourquoi la somme et la moyenne ne sont pas exact quelque soit la valeur entrée dans le formulaire. Y a encore un truc qui m'échappe.
je glisse mon script a nouveau
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
<title>moyenne</title></head>
</head>
<body>
<h2>Formulaire</h2>
<form action="tableaux2.php" method="POST">
<table>
<tr>
<td><input type="text" name="tab_chiffres[]"value=""/></td></tr>
<tr><td><input type="text" name="tab_chiffres[]"value=""/></td></tr>
<tr><td><input type="text" name="tab_chiffres[]"value=""/></td></tr>
<tr><td><input type="text" name="tab_chiffres[]"value=""/></td></tr>
<tr><td><input type="text" name="tab_chiffres[]"value=""/></td></tr>
</table>
<input type="submit" name="soumettre">
</form>
<?php
echo "liste des valeurs entées 2ème solution: <br>";
foreach($_POST['tab_chiffres'] as $chiffre)
{
echo $chiffre . "<br>";
}
?>
<?php
$tab_chiffres[0] = $chiffre;
$tab_chiffres[1] = $chiffre;
$tab_chiffres[2] = $chiffre;
$tab_chiffres[3] = $chiffre;
$tab_chiffres[4] = $chiffre;
echo "afficher la somme totale" ;
echo array_sum ($tab_chiffres);
echo "<br>";
?>
<?php
echo $result = count($tab_chiffres);
?>
<?php
echo "Afficher la moyenne <br>" ;
echo array_sum ($tab_chiffres)/$result;
?>
</body>
</html>
j'attends vos lumières parce que là j suis dans le noir total.
Merci d'avance et à bientot.
Hors ligne
$tab_chiffres[0] = $chiffre;
$tab_chiffres[1] = $chiffre;
$tab_chiffres[2] = $chiffre;
$tab_chiffres[3] = $chiffre;
$tab_chiffres[4] = $chiffre;
$chiffre n'est pas défini en dehors de la boucle foreach.
Hors ligne
Bonjour,
ok si je défini la variable $chiffre dans mon script pas de problème. La somme s'affiche.
Mais j'ai créé un formulaire pour que l'internaute puisse obtenir la somme quelque soit la valeur entrée dans le formulaire. et c'est la mon souci -
A++
Hors ligne