Probleme dans requete

Signaler
Messages postés
52
Date d'inscription
jeudi 11 février 2010
Statut
Membre
Dernière intervention
1 mars 2016
-
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
-
Bonjour a tous,

j'ai un petit probleme dans l'une de mes requetes.

J'ai 2 listes déroulante dont je récupere le résultat, et je voudrais comparer ses 2 résultat avec une conditions.

Si le résultat de la premiere liste déroulante est inferieur a la deuxieme alors on modifie les point maxi de l'adversaires sinon on ne fais rien.

J'ai aucune erreur d'afficher a l'ecran, mais ca ne modifie rien
voici mon code:

<?php
//Si l'action de "valider" a été faite

if(isset($_POST["Valider"]))
{
if (isset($_POST['equipier']) AND isset($_POST['resultat']) AND isset($_POST['adversaire']))
{
$equipier = htmlentities($_POST['equipier']);
$resultat = htmlentities($_POST['resultat']);
$adversaire = htmlentities($_POST['adversaire']);
$fight=mysql_query("select Fightvalue from stats WHERE Clodo=$equipier") or die('Erreur SQL !
'.$fight.mysql_error());

while ($ligne = mysql_fetch_object($fight))
{
$FightvalueEquipier = $ligne->Fightvalue;
}
$fight2=mysql_query("select Maxi from stats WHERE Adversaire=$adversaire") or die('Erreur SQL !
'.$fight2.mysql_error());

while ($ligne1 = mysql_fetch_object($fight2))
{
$FightvalueAdversaire = $ligne1->Fightvalue;
}
if($fight<$fight2);{
$requete=mysql_query("UPDATE stats SET Maxi=$fight WHERE Adversaire=$adversaire");
}
}
}

else{
}
?>

Merci de votre aide

16 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Salut,

Simplement es-tu sur que ca passe sur l'ordre UPDATE et que toutes les valeurs sont reseignées.
Et que l'ordre update générés met a jour la ligne?
Messages postés
52
Date d'inscription
jeudi 11 février 2010
Statut
Membre
Dernière intervention
1 mars 2016

Non ca ne passe pas l'ordre d'update vu que rien n'est modifié.

Tu as une idée s'il te plait car je galère vraiment?
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Ma question etait est-ce que toutes les conditions sont réunit pour que le programme passe dans sur l'instruction UPDATE
Il passe peut etre dans le else

??
Messages postés
128
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
6 mai 2011
2
Bonjour

Dans ton code tu met :

if($fight<$fight2);{
$requete=mysql_query("UPDATE stats SET Maxi=$fight WHERE Adversaire=$adversaire");
}

alors que je pense que tu devrais mettre

if($FightvalueEquipier<$FightvalueAdversaire);{
$requete=mysql_query("UPDATE stats SET Maxi=$fight WHERE Adversaire=$adversaire");
}

J'ai juste remplacer fight1 et fight2 par les valeur que tu récupère dans les boucles while.
D'ailleurs si chaque joueur à qu'une seule valeur "Maxi" dans la table stats, tu n'as pas besoin de faire de boucle while.
Tu peux remplacer :

while ($ligne1 = mysql_fetch_object($fight2))
{
$FightvalueAdversaire = $ligne1->Fightvalue;
}

PAR :
$ligne1 = mysql_fetch_object($fight2);
$FightvalueAdversaire = $ligne1->Fightvalue;
Messages postés
52
Date d'inscription
jeudi 11 février 2010
Statut
Membre
Dernière intervention
1 mars 2016

J'ai remplacer mon code par tes modifs mais il n'y a pas de changement.
La modification ne se fait pas. J'ai pas non plus d'erreur a l'ecran
Messages postés
128
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
6 mai 2011
2
Dans ton if, fait un echo de ta requete :

if($fight<$fight2);{
$sql = "UPDATE stats SET Maxi=$fight WHERE Adversaire=$adversaire";
echo $sql;
$requete=mysql_query($sql);
}

Comme ca tu verra s'il passe dans ta condition et si oui tu verra la requete effectuée
Messages postés
128
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
6 mai 2011
2
Désoler je m'étais trompé de condition :
Et de plus il y avait un ";" en trop qui trainait après ton if
if($FightvalueEquipier<$FightvalueAdversaire){
$sql = "UPDATE stats SET Maxi=$fight WHERE Adversaire=$adversaire";
echo $sql;
$requete=mysql_query($sql);
}
Messages postés
52
Date d'inscription
jeudi 11 février 2010
Statut
Membre
Dernière intervention
1 mars 2016

Je viens d'essayer mais ce ne modifie toujours rien
meme avec l'echo rien ne s'affiche a l'ecran
Messages postés
128
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
6 mai 2011
2
Es-tu sûr qu'il passe dans tes premières conditions ?
Mets plusieurs echo à différents endroits de ton code (après chaque condition) pour voir à partir de où il s'arrête.
Messages postés
52
Date d'inscription
jeudi 11 février 2010
Statut
Membre
Dernière intervention
1 mars 2016

Oui car juste avant cette requete j'ai fais un historique et ça s'enregistre tres bien dans ma bdd
Messages postés
128
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
6 mai 2011
2
Peux tu recopier le code de ton fichier avec les modifications et me donner le résultat des valeurs de $FightvalueEquipier et $FightvalueAdversaire
Messages postés
52
Date d'inscription
jeudi 11 février 2010
Statut
Membre
Dernière intervention
1 mars 2016

Je viens de t'envoyer un MP avec tous les codes de ma page complete et avec une explication plus détaillé

Merci de votre aide
Messages postés
128
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
6 mai 2011
2
ok je regarde et te tiens au courant dès que possible
Messages postés
52
Date d'inscription
jeudi 11 février 2010
Statut
Membre
Dernière intervention
1 mars 2016

Je suis au Taf si tu a des questions je pourrai y répondre Ue ce soir ou demain matin

Merci
Messages postés
128
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
6 mai 2011
2
Ok je t'ai répondu par MP
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Nous somme sur un forum ici, non ?
Ces MP sont totalement contraire à cet esprit

@Guilstunt :
C'est une blague que tu nous fais ?
Non seulement tu n'as pas la décence de répondre aux personnes qui prennent du temps pour te répondre mais en plus tu ne tiens pas compte de ce qu'ils te disent (ou si peu), sans compter le doublon

Pour mémoire :
http://www.phpcs.com/forum/sujet-REQUETE-UPDATE_1474591.aspx


y a des fois on se demande vraiment pourquoi on réponds à des personnes qui n'en ont rien à foutre de ce qu'on leur dit et qui attendent du code tout fait.


Kohntark -