Total Manager Posté 10 Juin 2004 Posté 10 Juin 2004 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 ??
Anonymus Posté 10 Juin 2004 Posté 10 Juin 2004 Tu peux donner la description de tes tables, s'il te plait, ce sera plus facile
pitidev Posté 10 Juin 2004 Posté 10 Juin 2004 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...
Total Manager Posté 10 Juin 2004 Auteur Posté 10 Juin 2004 (modifié) 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 :!: Modifié 10 Juin 2004 par Anonymus
Dan Posté 10 Juin 2004 Posté 10 Juin 2004 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
Anonymus Posté 10 Juin 2004 Posté 10 Juin 2004 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.
Total Manager Posté 10 Juin 2004 Auteur Posté 10 Juin 2004 (modifié) 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 $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."'"; Modifié 10 Juin 2004 par Total Manager
Total Manager Posté 10 Juin 2004 Auteur Posté 10 Juin 2004 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
Dan Posté 10 Juin 2004 Posté 10 Juin 2004 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
Total Manager Posté 10 Juin 2004 Auteur Posté 10 Juin 2004 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
Total Manager Posté 10 Juin 2004 Auteur Posté 10 Juin 2004 (modifié) 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';}?> Modifié 11 Juin 2004 par Dan
Anonymus Posté 11 Juin 2004 Posté 11 Juin 2004 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.
Total Manager Posté 11 Juin 2004 Auteur Posté 11 Juin 2004 (modifié) 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 Comment je fait :lol Modifié 11 Juin 2004 par Total Manager
Anonymus Posté 12 Juin 2004 Posté 12 Juin 2004 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.
Total Manager Posté 12 Juin 2004 Auteur Posté 12 Juin 2004 (modifié) 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 Modifié 12 Juin 2004 par Total Manager
Total Manager Posté 12 Juin 2004 Auteur Posté 12 Juin 2004 <?$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
Anonymus Posté 12 Juin 2004 Posté 12 Juin 2004 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 ? ) Après, ca devrait marcher, normalement.
Total Manager Posté 12 Juin 2004 Auteur Posté 12 Juin 2004 (modifié) 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 Bon je comprend pas la alors , j'ai 21 champs dans ma TABLE Je comprend pas ou est le problème tu voit toi Anonymous ?? Modifié 12 Juin 2004 par Total Manager
Anonymus Posté 12 Juin 2004 Posté 12 Juin 2004 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à.
Total Manager Posté 12 Juin 2004 Auteur Posté 12 Juin 2004 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 ?
Total Manager Posté 12 Juin 2004 Auteur Posté 12 Juin 2004 (modifié) 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') Modifié 12 Juin 2004 par Total Manager
Total Manager Posté 12 Juin 2004 Auteur Posté 12 Juin 2004 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'
Anonymus Posté 12 Juin 2004 Posté 12 Juin 2004 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.
Anonymus Posté 12 Juin 2004 Posté 12 Juin 2004 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.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant