Calcul mathématique de base

Résolu/Fermé
BaptisteDebes Messages postés 90 Date d'inscription mardi 8 mai 2012 Statut Membre Dernière intervention 14 octobre 2013 - 14 mai 2012 à 22:32
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 - 15 mai 2012 à 21:42
Bonjour,

Je suis {débutant} !!! en php je suis actuellement les tutos du site du zéro et j'ai essayer de mettre à ma sauce le calcul de volume d'un cone s'y vous m'aider ça m'aiderai à savoir comment séléctionner des informations voici mon code :


<?php
$volume = 'nbr1' * 'nbr1' * 3.14 * 'nbr2' * (1/3);
echo 'le volume de votre cone est de ' . $volume . 'cm';
?>

<form action="bidule1.php" method="post">
<table>
<tr><td>
<span class="gras">Nombre 1 :</span>
</td><td>
<input type="text" name="nbr1" maxlength="30" size="50">
</td></tr><tr><td>
<span class="gras">Nombre 2 :</span>
</td><td>
<input type="text" name="nbr2" maxlength="50" size="50">
</td></tr><tr><td><td align="right">
<input type="submit" name="go" value="calcul!!!">
</td></tr></table>
</form>






Merci d'avance.

3 réponses

Bonsoir même si PHP est un langage non typé(les variables ne sont d'aucun type) il vous faut quand même indiquer que ce sont des nombres or:

$volume = 'nbr1' * 'nbr1' * 3.14 * 'nbr2' * (1/3);

Le guillemmet simple(comme le double) indique bien que vous avez une chaine de caractères(des lettres) que vous essayez de multiplier.

Pour votre calcul de volume vous devez utiliser des valeurs(numériques) qui vont varier, ce doit donc être des variables.

A titre d'info(si vous n'avez pas déjà une erreur) essayez d'afficher $volume.
print_r($volume);

Le résultat est certainement pas le volume d'un cône
Autre remarque, si vous utilisez des variables donnez leur des noms explicite, $nbr1 veut rien dire tandis que avec $hauteur on siat tout de suite de quoi on parles , imaginez quand vous avez 100 variables, essayez de trouver à quoi correspond nbr77... absurde, donc une bonne habitude à prendre: donner des noms pertinents.

Toujours à titre d'exemple on va faire un calcul avec des valeurs arbitraires:

<?php
$surface_base=10;
$hauteur=11;

$volume=1/3*$surface_base*$hauteur;
/*j'ai simplifié le calcul en utilisant une surface de cercle déjà calculé, à vous d'adapté en ajoutant les variables nécessaires*/
echo "La surface est de: ".$volume;

?>

Vous avez donc un calcul. Pour entrer des valeurs 'variables il vous faut utiliser un formulaire HTML avec une méthode GET ou POST(selon si vous traitez les informations dans la même page ou une autre).
Des explications ici:

http://www.commentcamarche.net/contents/html/htmlform.php3
1
BaptisteDebes Messages postés 90 Date d'inscription mardi 8 mai 2012 Statut Membre Dernière intervention 14 octobre 2013
14 mai 2012 à 23:07
Je vous remercie grandement pour votre reponses.
0
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 14/05/2012 à 23:37
Salut !

La méthode de ton formulaire est "POST", alors tu dois travailler avec les variables globales $_POST !, si t'avais choisis GET au lieu de POST dans la méthode, alors tu devrai travailler avec les variables $_GET !

Donc quand tu cliquera sur le bouton submit, le serveur va générer un tableau qui s'appele $_POST et qui contient tout les entrés du formulaire !
Exemple !
Si t'avais mis 18 dans le champs 'nbr1', alors tu peut récupérer cette valeur dans ...
$_POST['nbr1'] ...

Tu dois quand même ajouter des tests, car (par exemple) lorsque tu ouvre la page pour la première fois, la variable$_POST n'existe pas encore, car la formulaire n'a pas encore été envoyé, donc tu dois ajouter une condition pour dire "si la variable existe, alors fait cela et ceci" !
Exemple !
if(isset($_POST) AND !empty($_POST)) {   
    //TRAITEMENTS   
}


On ce qui concerne ton calcul, comme ça a été dis plus haut, tu ne peux réaliser des opérations binaire sur des chaines de caractères !
Tu le peux ...
Soit avec des variables qui contiennent des valeurs numériques.
Soit avec des constantes qui contiennent des valeurs numériques.
Soit avec des valeurs numériques directement !
0
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
15 mai 2012 à 13:30
Bonjour,

if(isset($_POST) AND !empty($_POST)) {   
    //TRAITEMENTS   
}


remplacer par:

if(isset($_POST) && !empty($_POST)) {   
    //TRAITEMENTS   
}


la différence? AND et &&

AND impose que les deux conditions soient remplies simultanément

&& impose seulement que la deuxième condition soit respectée si la première est déjà vérifiée.

Exemple:
- si c'est une femme et si elle a moins de 21 ans...

en PHP:
  $sexe='M';  // ici M = masculin
  $age = '18'


on aura

if ($sexe == 'F'  &&  $age < 21)


cette manière de procéder est équivalente à ceci:

if ($sexe == 'F' ) {
   if ($age < 21) {
      ...traitement....
   }
}


avantage: on ne poursuit pas les tests si la première condition n'est pas vérifiée.

A+
0
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 15/05/2012 à 21:43
Salut ...
C'est pas vraiment ça, c'est juste une question de priorité, mais dans le cas que j'ai donner, ça ne cause aucun problème, && ou AND, le résultat reste le même !

&& plus prioritaire que le AND !
|| plus prioritaire que le OR
0
BaptisteDebes Messages postés 90 Date d'inscription mardi 8 mai 2012 Statut Membre Dernière intervention 14 octobre 2013
15 mai 2012 à 16:29
Merci beaucoup pour vos réponse surtout par rapport à la vérification et à la syntaxe du code.

Je vous remercie.
0