Version complète: sur le forum Webmaster Hub : Ma Table Mysql
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Total Manager
Bonjour tout d'abord wink.gif

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
Tu peux donner la description de tes tables, s'il te plait, ce sera plus facile biggrin.gif
pitidev
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
wink.gif 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 sad.gif

J espère que l'on a droit à mettre des images q_smallexcla.gif
Dan
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
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
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 r_question6161.gif


SVP biggrin.gif

$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."'";
Total Manager
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 r_question6161.gif
Dan
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 wink.gif
CODE
$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
wink.gif 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
Les gars si quelqu'un peut me dire exactement ou mettre le code donné par Dan et Anonymus SVP

CODE
<?
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';
}
?>
Anonymus
Pour info, je ne trouve pas cette phrase bien heureuse :
CITATION
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
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.gif

Comment je fait :lol
Anonymus
Ici :
CODE
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
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
Total Manager
CODE
<?
$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
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 ? biggrin.gif )

Après, ca devrait marcher, normalement.
Total Manager
j'ai rajoute le champs gardien dans ma table sad.gif , Je l'ai même mi hier

C'est dans ma page PHP que ça foire alors je regarde attends laugh.gif

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 ??
Anonymus
Au lieu de
CODE
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 :
CODE
$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
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

CODE
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
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')
Total Manager
J'ai rentré ton code et le mien et ça mets :

CITATION
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
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
Après le 13, il te manque un apostrophe wink.gif
Anonymus
Dans la séquence
CODE
'$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.
Total Manager
Bon en plus on pe pas rentrer des donées '2' donc il faut mettre 2 plutôt j'ai fait ca et ca ma mis :

CITATION
requête SQL : 

INSERT INTO joueurs
VALUES (

Drogba, Didier, AT, Marseille, 72.857142857143, 63, 7, 14, 15, 17, 14, 17, 15, 4, 13, 4, 18, 8, 4, 4, 31
)

MySQL a répondu:


#1054 - Unknown column 'Drogba' in 'field list'
Anonymus
??

Si, bien sûr qu'on peut entrer des données entourées d'apostrophes !

Pour les chiffres, on peut entrer au choix, avec ou sans apostrophe. Mais avec, ca doit marcher aussi !
Anonymus
Remplaces la variable $query que je t'ai donné tout de suite par celle ci :
CODE
$query = "INSERT INTO joueurs ( nom,prenom,poste,club,attaque,defense,tacles,physique,vitesse,tir,passe,controle
flair,prise,tete,sorties,dribble,CF,techniquegoal,reflexe,gardien) ";
$query .= "VALUES('$nom','$prenom','$poste','$club','$attaque','$defense','$tacles','$physique','$vitesse','$tir','$passe','$controle','$flair','$prise','$tete','$sorties','$dribble','$CF','$techniquegoal','$reflexe','$gardien')";


Anonymus.
Total Manager
CITATION
Parse error: parse error in /var/www/free.fr/a/6/managerattitudes/notes.php on line 53
Anonymus
Euh.. Recommences, j'ai modifié la requète sad.gif
Total Manager
query : INSERT INTO joueurs& #40;nom,prenom,poste,club,attaque,defense,tacles,physique,vitesse,tir,passe,cont role,flair,prise,tete,sorties,dribble,CF,techniquegoal,reflexe,gardien) VALUES('Drogba','Didier','AT','Marseille','72.857142857143','65','7','14','15','17'','16','16','15','4','13,'4','17','8','4','4','31')
result :
Le joueur a été rentré dans la base


Bon voila ca ma mi ca wink.gif
Total Manager
CITATION
Base de données managerattitudes - Table joueurs sur le serveur sql.free.fr
Erreur

requête SQL : 

INSERT INTO joueurs & role,
flair,
prise,
tete,
sorties,
dribble,
CF,
techniquegoal,
reflexe,
gardien

)
VALUES (
'Drogba', 'Didier', 'AT', 'Marseille', '72.857142857143', '65', '7', '14', '15', '17'','16 ','16 ','15 ','4 ','13, '4', '17', '8', '4', '4', '31'
)

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 '& role,
flair,
prise,
tete,
sorties,
dribble,
CF,
techniquegoal
Anonymus
Recommences, il y a un bug sous 'invision', qui ne permet pas d'entrer les parenthèses suivies des apostrophes. (' wacko.gif
Total Manager
T'es Sur que ca vient de la regarde ce qu'il dit il dit que ca vient de :

CITATION
flair,
prise,
tete,
sorties,
dribble,
CF,
techniquegoal
Anonymus
Recommences, donc, en récupérant la requète postée plus haut, je l'ai modifiée, et il n'y a plus le caractère & 40 ; (qui semble bugger sous invision, puisque l'on ne peut pas l'afficher sad.gif )
Loupilo
T'es parti en freestyle total là huh.gif !

Attends un peu, tout le monde n'a pas les connaissances pour te répondre, ou pas l'envie rolleyes.gif

++
Total Manager
biggrin.gif pffffff ca pas pour ça que je postais laugh.gif

Anonymous je sais que t'es la alors j'ai envoyé mon notes.php chez lycos et j'ai rempli le formulaire ça ma mit ca

CITATION
erreur de connexion réessayer plus tard


C'est parceque je suis allerz chez lycos ou c'est parceque Free à un problème ?
Anonymus
Je sais pas, j'ai pas fait les stages technicien online 'Lycos' et 'Free'. biggrin.gif

Ce sont des hébergeurs gratuits, ils sont assez souvent indisponibles.

Par contre, ne va pas croire que Lycos va appeler Free pour leur dire que t'es parti chez eux biggrin.gif biggrin.gif Ils ont autre chose à faire wink.gif
Dan
J'ai fait du ménage en supprimant une bonne dizaine de messages inutiles de total manager.

Je rappelle à tous, et à total manager en particulier que contrairement à un Chat, un forum n'est pas destiné à recevoir des messages d'une ligne en continu.
Pour ce type d'échanges, le chat est à votre disposition.

Merci de garder cela à l'esprit.

Dan
Total Manager
Dan à tout à fait raison et je le remercie mes messages poluée le topic , mon problème de connection aux FTP de free n'est toujours pa résolu ça me gonfle car je ne peut pas corriger mon problème qu'on à résolu avec Anonymous sad.gif
Total Manager
Bon MErci Anonymous sa remarche !!!

Je te remercie de tout mon coeur ! blush.gif



:yoot: Aller @++
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.