Jump to content
Sign in to follow this  
Total Manager

Ma Table Mysql

Rate this topic

Recommended Posts

Bonjour tout d'abord ;)

Voila , j'ai une table mysql et j'aimerais que les champs Attaque et Défense soit égal à l 'addition de 5 autres champs est ce que c'est possible ??

Share this post


Link to post
Share on other sites

Tu peux donner la description de tes tables, s'il te plait, ce sera plus facile :D

Share this post


Link to post
Share on other sites

Est ce vraiment utile?

les valeurs calculées n'ont pas pour habitude d'etre stockées

si un jour tu veux afficher quelque part ton champ attaque ou defense, et bien tu va cherche tes 5 autres champs et tu les additionne...

Share this post


Link to post
Share on other sites

;) Ok dommage je vais un peu galèrer alors , va falloir que je calcule tout à la main je pensé que PHP pouvait automatisé ça mais bon , pour mon jeu vais devoir faire toutes les moyennes de tête :(

J espère que l'on a droit à mettre des images :!:

post-14-1086882259_thumb.jpg

Edited by Anonymus

Share this post


Link to post
Share on other sites

Total Manager,

Il est clair que Php peut automatiser cela... mais pas besoin de stocker ces valeurs , ni de les calculer à la main.

En Php tu peux assigner à une variable $attaque une valeur égale à la somme de 5 champs , idem pour $defense.

Dan

Share this post


Link to post
Share on other sites

Tu fais :

SELECT champ1+champ2+champ3+champ4+champ5 AS nouveau_nom FROM table

Le AS permet de renommer le nouveau champ.

Lorsque tu inclus les champs, tu additionnes les valeurs que tu veux ,et tu les ajoutes au champ Attaque.

Exemple :

$query ="INSERT INTO table(champ1,champ2,champ3,champ4,champ5,attaque)

VALUES ('valeur_champ1','valeur_champ2','valeur_champ3','valeur_champ4','valeur_champ5',

'".$champ1+$champ2+$champ3+$champ4+$champ5."'";

Bon.. Y doit y avoir des erreurs, mais sinon, c'est ca, tout simplement.

Share this post


Link to post
Share on other sites

Merci je fait comment çaj'insere dans ma page

http://managerattitudes.free.fr/notes.php

Ou je rentre ce que tu m'a donné dans le Mysql de free :?:

SVP :D

$attaque ="INSERT INTO table(Passe, Tacle, Tete, Vitesse, Physique )

VALUES ('valeur_champ1','valeur_champ2','valeur_champ3','valeur_champ4','valeur_champ5',

'".$champ1+$champ2+$champ3+$champ4+$champ5."'";

Edited by Total Manager

Share this post


Link to post
Share on other sites

Désolé pour ce nouveau message mais si je veut faire

( a + b + c + d + e + f ) / 7 pour faire la moyenne comment que je fais :?:

Share this post


Link to post
Share on other sites

Total Manager,

Le code que t'a donné Anonymus est à rentrer dans ta page php.

Et pour faire une moyenne de 6 variables on divise la somme par 6, pas par 7 ;)

$ma_moyenne=($var1+$var2+$var3+$var4+$var5+$var6)/6;

Si tu hésites pour cela, je te recommande de découvrir le php avec les articles du Hub: http://www.webmaster-hub.com/publication/rubrique17.html

Dan

Share this post


Link to post
Share on other sites

;) Super Merci de tout coeur !!!!!!! C'est vraiment sympa d'aider les débutants comme moi merci un grand bravo !!!

Ou c'est que je peut avoir une bann 80 * 30 de votre Site ?? Svp

Share this post


Link to post
Share on other sites

Les gars si quelqu'un peut me dire exactement ou mettre le code donné par Dan et Anonymus SVP

<?
if(!$mode)
{
print'Bienvenue dans le système Notes on-line<br>Rentrer ici le mot de passe administrateur<br><form method="post" action="notes.php"><input type="hidden" name="mode" value="1"><input type="password" name="pass"> <input type="submit" name="Submit" value="Suite"></form>';
}
elseif($_POST[mode]==1 and md5($_POST[pass])=='c4f2bc55383c55b76ed5d24018e11819')
{
print'<form method="post" action="notes.php"><input type="hidden" name="mode" value="2">Nom du joueur : <input type="text" name="nom"><br>
Prénom du joueur : <input type="text" name="prenom"><br>
Poste du joueur (GB,DF,MT,AT) : <input type="text" name="poste"><br>
Club : <input type="text" name="club"><br>
Attaque :<input type="text" name="attaque"><br>
Défense :<input type="text" name="defense"><br>
Tacles : <input type="text" name="tacles"><br>
Physique : <input type="text" name="physique"><br>
Vitesse : <input type="text" name="vitesse"><br>
Flair : <input type="text" name="flair"><br>
Passe : <input type="text" name="passe"><br>
Tirs :<input type="text" name="tir"><br>
Interventions : <input type="text" name="sorties"><br>
Prise de Balle :<input type="text" name="prise"><br>
Tête : <input type="text" name="tete"><br>
Technique :<input type="text" name="controle"><br>
Dribble :<input type="text" name="dribble"><br>
Technique CF:<input type="text" name="CF"><br>
Technique Goal : <input type="text" name="techniquegoal"><br>
Réflexes : <input type="text" name="reflexe"><br><input type="submit" name="Submit" value="Suite"></form>';
}
elseif($_POST[mode]==2)
{
$req=mysql_connect('sql.free.fr',XXXXXXX,XXXXXXXX) or die ("erreur de connexion 1");
mysql_select_db(XXXXXXXX,$req) or die ("erreur de connexion réessayer plus tard");
$r2=mysql_query("SELECT * FROM joueurs where nom='$nom' and prenom='$prenom'");
$nb=mysql_num_rows($r2);
if($nb!='0')
{
print'Ce joueur a déjà été rentré dans la base';
}
else
{
mysql_query("INSERT INTO joueurs VALUES('$nom','$prenom','$poste','$club','$attaque','$defense','$tacles','$physique','$vitesse','$flair','$passe','$tir','$sorties','$prise','$tete','$controle','$dribble','$CF','$techniquegoal','$reflexe')");
print'Le joueur a été rentré dans la base <br><form method="post" action="notes.php"><input type="hidden" name="mode" value="1"><input type="hidden" name="pass" value="tmcfort"> <input type="submit" name="Submit" value="Rentrer un autre joueur"></form>';
}
}
else
{
print'Votre mot de passe n\'est pas bon , veuillez le recésir . Sinon vous n\' avez rien à faire sur cette page';
}
?>

Edited by Dan

Share this post


Link to post
Share on other sites

Pour info, je ne trouve pas cette phrase bien heureuse :

else

{

print'Votre mot de passe n\'est pas bon , veuillez le recésir . Sinon vous n\' avez rien à faire sur cette page';

}

D'autant qu'elle ne permet pas de retourner sur la page en question. Il n'y a pas de bouton 'retour' ou autre.

'recésir" s'écrit : "ressaisir".

Voilà,

Anonymus.

Share this post


Link to post
Share on other sites

J'ai fini mais j'ai une erreur chelou enfin c'est plutôt un bug !

Je rentre 20 en Tir

Et quand je vais pour voir la note ya marqué 20 en Technique :huh:

Comment je fait :lol

Edited by Total Manager

Share this post


Link to post
Share on other sites

Ici :

mysql_query("INSERT INTO joueurs VALUES('$nom','$prenom','$poste','$club','$attaque','$defense','$tacles','$physique','$vitesse','$flair','$passe','$tir','$sorties','$prise','$tete','$controle','$dribble','$CF','$techniquegoal','$reflexe')");
print'Le joueur a été rentré dans la base <br><form method="post" action="notes.php"><input type="hidden" name="mode" value="1"><input type="hidden" name="pass" value="tmcfort"> <input type="submit" name="Submit" value="Rentrer un autre joueur"></form>';

tu mets les valeurs dans un certain ordre.

Dans le plan de la table que tu donnes, les valeurs sont dans un ordre différent, d'où ton bug.

IL y a d'ailleurs pas mal de valeurs qui sont inversées, dans ton 'INSERT'.

Anonymus.

Share this post


Link to post
Share on other sites

j'ai plus aucun joueur qui s'affiche sur voir_notes.php et ca me soule

J'ai regardé ma table et les valeurs sont insérés pas dans les bons champs c'est pour ca je crois

Voila j'ai changé l'ordre d'apparition des $champ comme tu me l'avais dit maintenant je vais tester le bon fonctionnement

Edited by Total Manager

Share this post


Link to post
Share on other sites

<?
$temp=$flair+$passe+$tir+$CF+$dribble+$tete+$controle;
$defense=$tete+$tacles+$passe+$vitesse+$physique;
$attaque=$temp/1.4;
$gardien=$sorties+$prise+$techniquegoal+$reflexe+$vitesse
?>
<?
if(!$mode)
{
print'Bienvenue dans le système Notes on-line<br>Rentrer ici le mot de passe administrateur<br><form method="post" action="notes.php"><input type="hidden" name="mode" value="1"><input type="password" name="pass"> <input type="submit" name="Submit" value="Suite"></form>';
}
elseif($_POST[mode]==1 and md5($_POST[pass])=='c4f2bc55383c55b76ed5d24018e11819')
{
print'<form method="post" action="notes.php"><input type="hidden" name="mode" value="2">Nom du joueur : <input type="text" name="nom"><br>
Prénom du joueur : <input type="text" name="prenom"><br>
Poste du joueur (GB,DF,MT,AT) : <input type="text" name="poste"><br>
Club : <input type="text" name="club"><br>
Tacles : <input type="text" name="tacles"><br>
Physique : <input type="text" name="physique"><br>
Vitesse : <input type="text" name="vitesse"><br>
Flair : <input type="text" name="flair"><br>
Passe : <input type="text" name="passe"><br>
Tirs :<input type="text" name="tir"><br>
Interventions : <input type="text" name="sorties"><br>
Prise de Balle :<input type="text" name="prise"><br>
Tête : <input type="text" name="tete"><br>
Technique :<input type="text" name="controle"><br>
Dribble :<input type="text" name="dribble"><br>
Technique CF:<input type="text" name="CF"><br>
Technique Goal : <input type="text" name="techniquegoal"><br>
Réflexes : <input type="text" name="reflexe"><br><input type="submit" name="Submit" value="Suite"></form>';
}
elseif($_POST[mode]==2)
{
$req=mysql_connect('sql.free.fr','LOGIN','MOTDEPASSE') or die ("erreur de connexion 1");
mysql_select_db('managerattitudes',$req) or die ("erreur de connexion réessayer plus tard");
$r2=mysql_query("SELECT * FROM joueurs where nom='$nom' and prenom='$prenom'");
$nb=mysql_num_rows($r2);
if($nb!='0')
{
print'Ce joueur a déjà été rentré dans la base';
}
else
{
mysql_query("INSERT INTO joueurs VALUES('$nom','$prenom','$poste','$club','$attaque','$defense','$tacles','$physique','$vitesse','$tir'','$passe','$controle','$flair','$prise','$tete,'$sorties','$dribble','$CF','$techniquegoal','$reflexe','$gardien')");
print'Le joueur a été rentré dans la base <br><form method="post" action="notes.php"><input type="hidden" name="mode" value="1"><input type="hidden" name="pass" value="tmcfort"> <input type="submit" name="Submit" value="Rentrer un autre joueur"></form>';
}
}
else
{
print'Votre mot de passe n\'est pas bon , veuillez le ressaisir . Sinon vous n\' avez rien à faire sur cette page';
}
?>

Je comprend pas pkoi ca ne rentre aucun joueur dans la BDD

Share this post


Link to post
Share on other sites

Ca ne rentre aucun joueur parce que tu as mis 21 champs dans ta requète, alors que tu n'as que 20 champs dans ta table.

Pour info, le $gardien n'est pas dans la table. (blessé, carton rouge ? pas de remplacant ? :D )

Après, ca devrait marcher, normalement.

Share this post


Link to post
Share on other sites

j'ai rajoute le champs gardien dans ma table :( , Je l'ai même mi hier

C'est dans ma page PHP que ça foire alors je regarde attends :lol:

Bon je comprend pas la alors , j'ai 21 champs dans ma TABLE :o

Je comprend pas ou est le problème tu voit toi Anonymous ??

Edited by Total Manager

Share this post


Link to post
Share on other sites

Au lieu de

else
{
mysql_query("INSERT INTO joueurs VALUES('$nom','$prenom','$poste','$club','$attaque','$defense','$tacles','$physique','$vitesse','$tir'','$passe','$controle','$flair','$prise','$tete,'$sorties','$dribble','$CF','$techniquegoal','$reflexe','$gardien')");
print'Le joueur a été rentré dans la base <br><form method="post" action="notes.php"><input type="hidden" name="mode" value="1"><input type="hidden" name="pass" value="tmcfort"> <input type="submit" name="Submit" value="Rentrer un autre joueur"></form>';
}

tu mets :

$query = "INSERT INTO joueurs VALUES('$nom','$prenom','$poste','$club','$attaque','$defense','$tacles','$physique','$vitesse','$tir'','$passe','$controle','$flair','$prise','$tete,'$sorties','$dribble','$CF','$techniquegoal','$reflexe','$gardien')";

$r = mysql_query($query);
echo "<br>query : ".$query;
echo"<br> result : ".$r;
echo"<br>";
print'Le joueur a été rentré dans la base <br><form method="post" action="notes.php"><input type="hidden" name="mode" value="1"><input type="hidden" name="pass" value="tmcfort"> <input type="submit" name="Submit" value="Rentrer un autre joueur"></form>';
}

Il va s'afficher une requète sql, qu'il te faut insérer dans le phpmyadmin. Là, tu auras la réponse au problème. Mais il peut y avoir plusieurs raisons. Par exemple, si la personne s'appelle :

Joe L'emmerdeur

alors l'apostrophe fera 'bugger' la requète. L'idéal est de mettre des slashes devant toutes les apostrophes. Tu as une fonction qui le fait très bien, c'est addslashes();

Il te faudrait aussi vérifier un tant soi peu tes variables. Là, tu les récupères telles quelles, et tu les insères dans la base. Mais rien ne te dit qu'un joueur n'ira pas entrer des données.. pirates.

Prends toujours un maximum de précautions lorsque tu laisses un internaute entrer du code dans ton application.

Pour tester si un chiffre est un chiffre, par exemple :

$un_million = (int)$un_million;

Là, tu es sûr que ton million n'est pas un 'string' ou un 'array', etc...

Voilà.

Share this post


Link to post
Share on other sites

Ca me mets

query : INSERT INTO joueurs VALUES('Dxxx','Didier','AT','Marseille','72.857142857143','63','7','14','15','17'','14','17','15','4','13,'4','18','8','4','4','31')

result :

Le joueur a été rentré dans la base

Je rentre

INSERT INTO joueurs VALUES('Dxxx','Didier','AT','Marseille','72.857142857143','63','7','14','15','17'','14','17','15','4','13,'4','18','8','4','4','31')

ca dans ma table Mysql à chaque fois ?

Share this post


Link to post
Share on other sites

C'est pa plutôt

INSERT INTO joueurs(nom,prenom,poste,club,attaque,defense,tacles,physique,vitesse,tir,passe,

ontrole,flair,prise,tete,sorties,dribble,CF,techniquegoal,reflexe,gardien) VALUES ('Drogba','Didier','AT','Marseille','72.857142857143','63','7','14','15','17'','14','17','15','4','13,'4','18','8','4','4','31')

Edited by Total Manager

Share this post


Link to post
Share on other sites

J'ai rentré ton code et le mien et ça mets :

MySQL a répondu:

#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near '14 ','17 ','15 ','4 ','13,  '4',  '18',  '8',  '4',  '4',  '31'

Share this post


Link to post
Share on other sites

Non, pas à chaque fois. Juste pour voir. En général, il y a un message d'erreur assez explicite qui s'affiche lorsque la requète est fausse.

Ca donne une indication assez fiable de la ligne, de l'emplacement, etc.

Quand une requète ne veut pas marcher, le mieux est de l'afficher, de la récupérer, et d'essayer pour voir si elle passe dans l'éditeur du phpmyadmin.

Pour ce qui est de ton chiffre : '72.857142857143' il serait étonnant que sql accepte de stocker un si grand nombre. Il y a de fortes chances pour qu'il te 'tronque'.

Sinon, pour ta requète, la dernière chose que je vois, c'est de mettre le nom des champs après le nom de la table. Exemple :

INSERT INTO table (champ1,champ2) VALUES ('value1','value2')

Anonymus.

Share this post


Link to post
Share on other sites

Après le 13, il te manque un apostrophe ;)

Share this post


Link to post
Share on other sites

Dans la séquence

'$tir'','$passe','$controle','$flair','$prise','$tete,'$sorties'

tu as un apostrophe de trop après $tir, et il t'en manques un après $tete.

Anonymus.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...