Calculs en php mySQL

Résolu/Fermé
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 - 25 août 2010 à 18:39
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 - 31 août 2010 à 16:42
Bonjour à tous,

j'ai récemment posé une question sur excel pour un calcul assez compliqué que j'ai finalement réussis a formuler correctement avec l'aide de certains membres de la communauté de CCM.

Aujourd'hui j'aimerais mettre ce calcul en exécution PHP MySQL et je voulais savoir si les bases étaient les mêmes.


Le calcul était le suivant :

soit
A1 = nom
A2 = nombre
A3 = niveau défense
A4 = niveau attaque
A5 = puissance total

Alors
A5 = A2 X (A3 + A4)

Mais SI

A3 = 0 ALORS = A3 = 50
A4 = 0 ALORS = A4 = 40
A3 = 1 ALORS = A3 = 55
A4 = 1 ALORS = A4 = 45
A3 = 2 ALORS = A3 = 60
......


ca me donnait un truc comme ca :
=B2*(CHOISIR(C2+1;15;15;15;15;16;16;16;16;17;17;17;17;18;18;18;19;19;19;19;20)+(CHOISIR(D2+1;40;40;41;41;42;43;43;44;45;45;46;47;47;48;49;50;50;51;52;53;53)))



sur ma page je voudrais que ca apparaisse en formulaire

exemple :

"Nom" : nombre (sous input) X (attaque (sous menu déroulant de 0 à 20) + défense(sous menu déroulant de 0 à 20)) = Puissance

**Attaque 0 = 15
**Attaque 1 = 15
**Attaque 2 = 16
**Défense 0 = 40
**Défense 1 = 40
**Défense 2 = 42

Ect....


j'espere que je suis clair ...

en tout cas merci a tous de vous prendre la tête pour moi et a bientôt j'espère
A voir également:

10 réponses

smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 9
30 août 2010 à 19:19
bon vu que je n'ai pas eu de réponse alors je lance un petit up en changeant ma question,
quelqu'un aurait il un tuto sur les calculs en php mysql s'il vous plais ? oubliez site du zero que j'ai déjà lu
0
louloute300 Messages postés 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
30 août 2010 à 20:36
je te répond demain matin, si personne ne l'a fait d'ici la... (J'ai juste pas le tps ce soir)...
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 août 2010 à 21:01
pourquoi php mysql ? php suffit, mysql est une base de données servant en enregistrer des valeurs

voilà un chti exemple
<?php
if(isset($_POST['calculer'])){
	//le bouton a été cliqué on recupère les valeurs
	$nom=$_POST['nom'];
	$attaque=$_POST['attaque'];
	$defence=$_POST['defence'];
	
}else{
	//initialisation a vide par defaut
	$nom="";
	$attaque="";
	$defence="";
}
/*
qqs commentaires sur le formulaire ci dessous:
- action ="" la page s'appelle elle même
- si on veut que les valeurs et les choix faits subsistent au réaffichage il faut qqs petites astuces
- au départ on mets les $nom etc à vide
- dans l'input type text, value="<?php echo $nom; ?>" permet de garder le nombre saisi
- dans les select <?php if($attaque=="0") {echo 'selected';} ?> permet de conserver le choix fait
*/
?>
<html>
<body>
<form name="form1" method="post" action="">
Nom:
<input type="text" name="nom" value="<?php echo $nom; ?>" />
<br />
Attanque:
<select name="attaque">
	<option value="0" <?php if($attaque=="0") {echo 'selected';} ?> >0</option>
	<option value="1" <?php if($attaque=="1") {echo 'selected';} ?> >1</option>
	<option value="2" <?php if($attaque=="2") {echo 'selected';} ?> >2</option>
</select>
<br />
Défence:
<select name="defence">
	<option value="0" <?php if($defence=="0") {echo 'selected';} ?> >0</option>
	<option value="1" <?php if($defence=="1") {echo 'selected';} ?> >1</option>
	<option value="2" <?php if($defence=="2") {echo 'selected';} ?> >2</option>
</select>

<br /><input type="submit" name="calculer" value="Calculer" />
<br />
<?php
if(isset($_POST['calculer'])){
	//le bouton a été cliqué on fait le calcul et on affiche le resultat
	//affectation des valeurs attaque et defence en fonction des choix 0 1 2
	switch($attaque){
		case '0':
		$valeur_attaque=15;
		break;
		case '1':
		$valeur_attaque=15;
		break;
		case '2':
		$valeur_attaque=16;
		break;	
	}
	switch($defence){
		case '0':
		$valeur_defence=40;
		break;
		case '1':
		$valeur_defence=40;
		break;
		case '2':
		$valeur_defence=42;
		break;	
	}
	$puissance=$nom*$valeur_attaque*$valeur_defence;
	//affichage
	echo '<br /><br />';
	echo '<b>Puissance=</b> <input type="text" value="'.$puissance.'" readonly />'; //lecture seule donc non modifiable
	
}

?>
</form>
</body>
</html>
0
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 9
30 août 2010 à 21:58
alors attends parce que la tu viens de me bluffer ... je vais l'essayer et je reviens te dire si tout se passe comme prévu en tout cas je te remercie déjà de t'être penché sur mon problème.
0
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 9
31 août 2010 à 05:34
non en faite ce n'est pas bon... désolé.

Je t'explique en plus clair ce que j'aimerais faire et le pourquoi d'un besoin de BDD.
premièrement il y a 24 type de soldats diffèrent avec 20 niveau d'attaque et 20 niveau de défense donc beaucoup de données pour une seule page qui pourraient être appeler a partir d'une BDD (puis je veux apprendre a m'en servir)
deuxièmement chaque joueurs a un compte sur le site et cela doit s'afficher sur sa page profile (la je peux m'en occuper de ce coté la je gère)

prenons pour exemple pierrot :

Pierrot a donc :

250 milices / attaque niv 2 = 55 / défense niv 5 = 85
20 cavaliers / attaque niv 1 = 75 / défense niv 3 = 65
50 catapultes / attaque niv 2 = 180 / défense niv 5 = 95

le calcul donnerais alors :

puissance milices = 250 X (55 + 85)
puissance cavaliers = 20 X (75 + 65)
puissance catapultes = 50 X (180 + 95)

puissance total = puissance milices + puissance cavaliers + puissance catapultes

la puissance total de pierrot doit s'afficher sans qu'on puissent connaitre ses unités. après je fait juste un appel puissance total sur la page de pierrot ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
louloute300 Messages postés 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
31 août 2010 à 10:47
Tout d'abord, je pars sur la fais que tu puisse rajouter des types d'armée:
ex: milices, cavaliers, catapultes, (que tu as mis en exemple) puis on pourrait imaginer que tu rajoute un jour: archers, tours ... etc...

Ces "types" sont enregistrés dans $type;
$type= array("milice","cavaliers",...);

De même, leur valeur de puissance d'attaque sont dans $attaque:
$attaque=array(2,1,...);

Le nombre dans $nombre
$nombre=array(250,20,...);

Leur défenses dans $defense
$defense =array(85,65,...);

Avant de continuer, j'ai 2 problèmes majeurs:
- Est-ce que dans ton formulaire, tu offres la possibilité d'attaquer avec plusieurs types différents? ou seulement un seul? (Je pense plusieurs)
- Quel sera l'impact sur les armées? (Affaiblissement de l'armée au total ou perte d'homme et maintient des forces (attaques et défenses des survivants?)
-Ta table ds ta bdd est-elle faite? si oui, quels sont les chps?
- Juste au cas ou, As-tu pensez à la déco du formulaire?
0
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 9
Modifié par smoky184 le 31/08/2010 à 11:30
oula ... alors je n'est pas vu aussi compliqué ! simplement j'aimerais calculer des données qui sont soit dans un BDD soit directement dans le tableau si possible pour faire plus simple.


pour répondre a tes questions :

-je n'offre que le calcul dans mon formulaire
-donc pas d'impact pour les armées juste pour les joueurs qui connaitrons leurs puissance ^^
-je n'ai pas encore créé la BDD
- je n'ai pas pensé a la déco du formulaire que je préfèrerais en tableau

j'ai déjà assez de mal a comprendre les base d'un calcul en php. je me suis surement mal exprimé (comme d'hab)

je te donne le type de tableau dans lequel je veux calculer.


<table border="1">  
 <tr>  
  <td>Type</td>  
  <td>nombre</td>  
  <td>level attaque</td>  
  <td>level défense</td>  
  <td>puissance</td>  
 </tr>  
 <tr>  
  <td>milice</td>  
  <td><input type="text" name="nombre" size="4" maxlength="4"></td>  
  <td><select name="att_milice">  
       <option value="15" selected> 0</option>  
       <option value="17"> 1</option>  
       <option value="25"> 2</option>  
       <option value="29"> 3</option>  
       <option value="32"> 4</option>  
       <option value="35"> 5</option>  
      </select></td>  
  <td><select name="def_milice">  
       <option value="30" selected> 0</option>  
       <option value="36"> 1</option>  
       <option value="43"> 2</option>  
       <option value="55"> 3</option>  
       <option value="62"> 4</option>  
       <option value="69"> 5</option></td>  
  <td>puissance = nombre X (at_tmilice + def_milice)</td>  
 </tr>  
 <tr>  
  <td>cavalier</td>  
  <td><input type="text" name="nombre" size="4" maxlength="4"></td>  
  <td><select name="att_cavaliers">  
       <option value="50" selected> 0</option>  
       <option value="80"> 1</option>  
       <option value="95"> 2</option>  
       <option value="112"> 3</option>  
       <option value="122"> 4</option>  
       <option value="150"> 5</option>  
      </select></td>  
  <td><select name="def_cavalier">  
       <option value="80" selected> 0</option>  
       <option value="90"> 1</option>  
       <option value="113"> 2</option>  
       <option value="120"> 3</option>  
       <option value="129"> 4</option>  
       <option value="140"> 5</option></td>  
  <td>puissance = nombre X (att_cavalier + def_cavalier)</td>  
 </tr>  
</table>  

<br><br>  

<table border="1">  
 <tr>  
  <td>puissance total</td>  
  <td>puissance_total = puissance milice + puissance chevalier + puissance des autres type de soldats</td>  
 </tr>  




rien de plus compliquer car autant je sais faire deja pas mal de trucs en php autant je me lance pour la premiere fois dans des calculs alors je voudrais faire simple au départ pour comprendre.
0
louloute300 Messages postés 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
Modifié par louloute300 le 31/08/2010 à 13:17
Ok^^ merci pr ce formulaire; Au moins on part sur de bonne base.

Alors d'abord, n'oublie pas de mettre ce formulaire entre les balises:

<form name="formulaire" method="post">
...Ton formulaire...
<input type=submit value="Envoyer">
</form>


Ensuite:
On peut modifier ca:

<td>puissance = nombre X (at_tmilice + def_milice)</td>

pour remplacer cette ligne par:
<td><label name="puissance" value=""></td>

Puis rajouter cette fonction javascript dans les balises <head> de la même page:
<head>

</head>


Et rajouter :
<input type="text" name="nombre" size="4" maxlength="4" onchange="valpuissance()">
<select name="att_milice" onclick="valpuissance()">
<select name="def_milice" onclick="valpuissance()">
0
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 9
31 août 2010 à 12:17
tu as oublier la fonction javascript ....
0
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 9
31 août 2010 à 12:21
merci c'est cool la petite correction. il ne manque que le bout de javascript que tu as oublier ...
0
louloute300 Messages postés 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
31 août 2010 à 13:17
ah oui, pourtant je l'avais bien écrit; Elle 'a pas passé sans doute:

<head>
<script langage="javascript">
function valpuissance(){
document.formulaire.puissance.value=document.formulaire.nombre.value*(document.formulaire.att_milice.value+document.formulaire.def_milice.value);
}
</script>
</head>
0
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 9
31 août 2010 à 14:45
ca marche pas ... j'ai rien qui s'affiche :S
ais je fait une erreur ?

<html>
<head>
<script langage="javascript">
function valpuissance()
{
document.formulaire.puissance.value = document.formulaire.nombre.value *(document.formulaire.att_milice.value + document.formulaire.def_milice.value);
}
</script> 
</head>
<body>
<form name="formulaire" method="post">
<table border="1">
	<tr>
		<td>Type</td>
		<td>nombre</td>
		<td>level attaque</td>
		<td>level défense</td>
		<td>puissance</td>
	</tr>
	<tr>
		<td>milice</td>
		<td><input type="text" name="nombre" size="4" maxlength="4" onchange="valpuissance" value=""></td>
		<td><select name="att_milice" onclick="valpuissance">
      	<option value="15" selected> 0</option>
      	<option value="17"> 1</option>
      	<option value="25"> 2</option>
      	<option value="29"> 3</option>
      	<option value="32"> 4</option>
      	<option value="35"> 5</option>
      </select></td>
		<td><select name="def_milice" onclick="valpuissance">
      	<option value="30" selected> 0</option>
      	<option value="36"> 1</option>
      	<option value="43"> 2</option>
      	<option value="55"> 3</option>
      	<option value="62"> 4</option>
      	<option value="69"> 5</option></td>
		<td><input name="puissance" value=""></td>
	</tr>
</table>
<input type=submit value="Envoyer">
</form>
</body>
</html>
0
louloute300 Messages postés 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
31 août 2010 à 15:18
Corrections:

<html>
<head>
<script language="javascript">

function valeurpuissance(){
document.formulaire.puissance.value=document.formulaire.nombre.value *(document.formulaire.att_milice.value+document.formulaire.def_milice.value);
}
</script>
</head>
<body>
<form name="formulaire" method="post">
<table border="1">
<tr>
<td>Type</td>
<td>nombre</td>
<td>level attaque</td>
<td>level défense</td>
<td>puissance</td>
</tr>
<tr>
<td>milice</td>
<td><input type="text" name="nombre" size="4" maxlength="4" onchange="valeurpuissance();" value=""></td>
<td><select name="att_milice" onclick="valeurpuissance();">
<option value="15" selected> 0</option>
<option value="17"> 1</option>
<option value="25"> 2</option>
<option value="29"> 3</option>
<option value="32"> 4</option>
<option value="35"> 5</option>
</select></td>
<td><select name="def_milice" onclick="valeurpuissance();">
<option value="30" selected> 0</option>
<option value="36"> 1</option>
<option value="43"> 2</option>
<option value="55"> 3</option>
<option value="62"> 4</option>
<option value="69"> 5</option></td>
<td><input type=text name="puissance" value=""></td>
</tr>
</table>
<input type=submit value="Envoyer">
</form>
</body>
</html>
0
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 9
31 août 2010 à 16:02
super louloute ca marche ! franchement tu es super balèze ! merci encore
0
louloute300 Messages postés 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
31 août 2010 à 16:17
PS: Ce n'est que du javascript et du HTML.

Y a pas de PHP ni de mysql dedans... ;)
0
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 9
31 août 2010 à 16:42
oui j'ai bien vu ^^ j'ai vu trop gros alors que j'aurais du chercher moins loin comme d'hab ! merci encore
0