Comparer valeur a toute une colonne de BDD

guilstunt Messages postés 52 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 1 mars 2016 - 3 nov. 2010 à 16:41
guilstunt Messages postés 52 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 1 mars 2016 - 3 nov. 2010 à 23:46
Bonjour,

voila je bloque sur un petit problème, j'aimerai comparer une valeur a toute une colonne de ma bdd.
Je m'explique un peu mieux:

J'ai une liste déroulante avec des noms et un tableau avec des noms et en face de ses noms une case pts maxi et une case probabilité.
J'aimerai en fonction du nom choisi de ma liste deroulante, que ca affiche dans la case probabilité, la probabilité de victoire( si fightvalue du membre sélectionné de la liste est supérieur au pts maxi de l'adversaire cela inscrit "gagnant" et inversement si il est inférieur).

Si il y aurait qu'une seule personne dans mon tableau, j'y arrive mais je n'arrive pas a le faire pour tout mon tableau

Voici mon morceaux de code:

[code?]<?php

if (isset($_POST['equipier']))
{
$equipier = htmlentities($_POST['equipier']);

$fight=mysql_query("select Fightvalue from stats WHERE Clodo="".$equipier."" ") or die('Erreur SQL !
'.$fight.mysql_error());
$ligne = mysql_fetch_object($fight);
$FightvalueEquipier = $ligne->Fightvalue;

$fight2=mysql_query("select Maxi from stats WHERE Clodo Type='Adversaire'") or die('Erreur SQL !
'.$fight2.mysql_error());
$ligne1 = mysql_fetch_object($fight2);
$FightvalueAdversaire = $ligne1->Maxi;

$fight3=mysql_query("select Mini from stats WHERE Clodo Type='Adversaire'") or die('Erreur SQL !
'.$fight2.mysql_error());
$ligne2 = mysql_fetch_object($fight3);
$FightvalueAdversaires = $ligne2->Mini;
}
if(($FightvalueEquipier<$FightvalueAdversaire))
{
$sql = "UPDATE stats SET Probabilite='Perdant' WHERE Clodo Type='Adversaire' ";

$requete=mysql_query($sql);
}
else {
$sql = "UPDATE stats SET Probabilite='Gagnant' WHERE Clodo Type='Adversaire' ";

$requete=mysql_query($sql);
}
?>/code

J'ai ces 2 erreurs:

Notice: Undefined variable: FightvalueAdversaire in C:\wamp\www\Hors ligne\score.php on line 67

Notice: Undefined variable: FightvalueEquipier in C:\wamp\www\Hors ligne\score.php on line 67

Merci de votre aide car je bloque vraiment

24 réponses

guilstunt Messages postés 52 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 1 mars 2016
3 nov. 2010 à 17:49
Je viens de mettre des écho pour voir si mes requetes se font bien.
Mes echo s'affiche bien:

Valeur du post valider : ok
Formulaire validé
Requete Gagnante : UPDATE stats SET Probabilite='Gagnant' WHERE Clodo Type='Adversaire'

Mais dans la case probabilité rien ne s'affiche en face des nom des adversaire

au secours!


<?php
echo "Valeur du post valider : ".$_POST["ok"]."
"; 

if(isset($_POST["ok"]))
{
    echo "Formulaire validé
";
if(isset($_POST["ok"]) AND isset($_POST['equipier']))
{
$equipier = htmlentities($_POST['equipier']);

$fight=mysql_query("select Fightvalue from stats WHERE Clodo="".$equipier."" ") or die('Erreur SQL !
'.$fight.mysql_error());
        $ligne = mysql_fetch_object($fight);
        $FightvalueEquipier = $ligne->Fightvalue;

$fight2=mysql_query("select Maxi from stats WHERE Clodo AND Type='Adversaire'") or die('Erreur SQL !
'.$fight2.mysql_error());
        $ligne1 = mysql_fetch_object($fight2);
        $FightvalueAdversaire = $ligne1->Maxi;	

}
if(($FightvalueEquipier<$FightvalueAdversaire))
{
$sql = "UPDATE stats SET Probabilite='Perdant' WHERE Clodo Type='Adversaire' ";
        echo "Requete Perdante : ".$sql."
"; 
        $requete=mysql_query($sql);
}
else {
$sql = "UPDATE stats SET Probabilite='Gagnant' WHERE Clodo Type='Adversaire' ";
        echo "Requete Gagnante : ".$sql."
"; 
        $requete=mysql_query($sql);
}}
?>
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
3 nov. 2010 à 21:02
déja tu contrôles 2 fois
isset($_POST["ok"]) and ... la deuxième fois ça sert pas
teste voir ça

<?php

//echo "Valeur du post valider : ".$_POST["ok"]."
"; 

if(isset($_POST["ok"])){
    
    echo "Formulaire validé
";
    
    if(isset($_POST["ok"]) AND isset($_POST['equipier'])){
    $equipier = htmlentities($_POST['equipier']);

    $fight=mysql_query("select Fightvalue from stats WHERE Clodo="".$equipier."" ") or die('Erreur SQL !
'.$fight.mysql_error());
    $ligne = mysql_fetch_object($fight);
    $FightvalueEquipier = $ligne->Fightvalue;

  $fight2=mysql_query("select Maxi from stats WHERE Clodo AND Type='Adversaire'") or die('Erreur SQL !
'.$fight2.mysql_error());
    $ligne1 = mysql_fetch_object($fight2);
    $FightvalueAdversaire = $ligne1->Maxi;	

  
        if(($FightvalueEquipier<$FightvalueAdversaire)){
      	
    	  $sql = "UPDATE stats SET Probabilite='Perdant' WHERE Clodo Type='Adversaire' ";
        echo "Requete Perdante : ".$sql."
"; 
        $requete=mysql_query($sql);
    		}	else {
    		$sql = "UPDATE stats SET Probabilite='Gagnant' WHERE Clodo Type='Adversaire' ";
        echo "Requete Gagnante : ".$sql."
"; 
        $requete=mysql_query($sql);
        } 
      
    } else {
    echo "";
    }

} else {echo "Valeur du post non valider";}

?>



puis faudra rafraichir la page pour voir le changement f5
0
guilstunt Messages postés 52 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 1 mars 2016
3 nov. 2010 à 21:13
Salut merci pour ta réponse mais pas de changement

l'echo s'affiche bien:
Formulaire validé
Requete Gagnante : UPDATE stats SET Probabilite='Gagnant' WHERE Clodo Type='Adversaire'

Mais dans les cases de probabilité il n'y a rien, en fait j'ai l'impression que ça déconne sur WHERE Clodo Type='Adversaire'. Que la requete ne comprend pas qu'elle doit faire le if(($FightvalueEquipier<$FightvalueAdversaire)) a tous les clodo Type='Adversaire'

Tu en penses quoi?
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
3 nov. 2010 à 21:37
eh il manque le *
SELECT * maxi ...
0

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

Posez votre question
guilstunt Messages postés 52 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 1 mars 2016
3 nov. 2010 à 21:41
Maintenant j'ai cet erreur en mettant le *

Formulaire validé
Erreur SQL !
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 'Maxi from stats WHERE Clodo AND Type='Adversaire'' at line 1
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
3 nov. 2010 à 21:49
$fight=mysql_query("select * from stats WHERE Clodo="".$equipier."" limit 1 ")
or die('Erreur SQL !
'.$fight.mysql_error());
$ligne = mysql_fetch_object($fight);
$FightvalueEquipier = $ligne->Fightvalue;

$fight2=mysql_query("select * from stats WHERE Clodo AND Type='Adversaire' limit 1") or die('Erreur SQL !
'.$fight2.mysql_error());
$ligne1 = mysql_fetch_object($fight2);
$FightvalueAdversaire = $ligne1->Maxi;



je veux dire teste voir ça
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
3 nov. 2010 à 21:52
et fait un echo sur
echo $FightvalueEquipier = $ligne->Fightvalue;
et
echo $FightvalueAdversaire = $ligne1->Maxi;

voir si tu as un résultat
0
guilstunt Messages postés 52 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 1 mars 2016
3 nov. 2010 à 21:59
Toujours rien dans mes colonnes de probabilité

l'echo donne ca:

Formulaire validé
10350Requete Gagnante : UPDATE stats SET Probabilite='Gagnant' WHERE Clodo Type='Adversaire'

Pourquoi c'est marqué 10350 alors que ca devrait etre 1035?
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
3 nov. 2010 à 22:09
<?php

//echo "Valeur du post valider : ".$_POST["ok"]."
"; 

if(isset($_POST["ok"])){
    
    echo "Formulaire validé
";
    
    if(isset($_POST["ok"]) AND isset($_POST['equipier'])){
    $equipier = htmlentities($_POST['equipier']);

    $fight=mysql_query("select * from stats WHERE Clodo="".$equipier."" limit 1") or die('Erreur SQL !
'.$fight.mysql_error());
    $ligne = mysql_fetch_object($fight);
    echo $FightvalueEquipier = $ligne->Fightvalue
;

//verifie la valeur de $FightvalueEquipier 

  $fight2=mysql_query("select * from stats WHERE Clodo AND Type='Adversaire' limit 1") or die('Erreur SQL !
'.$fight2.mysql_error());
    $ligne1 = mysql_fetch_object($fight2);
    echo $FightvalueAdversaire = $ligne1->Maxi
;	

//verifie la valeur de $FightvalueAdversaire 
//on teste et on fait la proba
  
// () 2 parenthéses par utiles
// j ai supprimé ...
// dans la condition qui suit

        if($FightvalueEquipier<$FightvalueAdversaire){
      	
    	  $sql = "UPDATE stats SET Probabilite='Perdant' WHERE Clodo Type='Adversaire' ";
        echo "Requete Perdante : ".$sql."
"; 
        $requete=mysql_query($sql);
    		}	else {
    		$sql = "UPDATE stats SET Probabilite='Gagnant' WHERE Clodo Type='Adversaire' ";
        echo "Requete Gagnante : ".$sql."
"; 
        $requete=mysql_query($sql);
        } 
      
    } else {
    echo "";
    }

} else {echo "Valeur du post non valider";}

?>




0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
3 nov. 2010 à 22:12
corrige
echo $FightvalueAdversaire = $ligne1->Maxi
;
en
echo $FightvalueAdversaire = $ligne1->Maxi.'
';

echo $FightvalueEquipier = $ligne->Fightvalue
;
en
echo $FightvalueEquipier = $ligne->Fightvalue.'
';

j ai oublié les ' '
0
guilstunt Messages postés 52 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 1 mars 2016
3 nov. 2010 à 22:18
J'ai ca comme echo:

Formulaire validé

Notice: Undefined variable: ligne1 in C:\wamp\www\Hors ligne\score.php on line 62

Notice: Trying to get property of non-object in C:\wamp\www\Hors ligne\score.php on line 62

1035
Requete Perdante : UPDATE stats SET Probabilite='Perdant' WHERE Clodo Type='Adversaire'
0
guilstunt Messages postés 52 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 1 mars 2016
3 nov. 2010 à 22:19
je viens de modifier ligne1 en ligne

maintenant l'echo:

Formulaire validé
0
1035
Requete Gagnante : UPDATE stats SET Probabilite='Gagnant' WHERE Clodo Type='Adversaire'
0
guilstunt Messages postés 52 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 1 mars 2016
3 nov. 2010 à 22:20
Mais toujour rien dans mes cases de probabilité
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
3 nov. 2010 à 22:29
change les

$requete=mysql_query($sql) en

//teste la query

$requete=mysql_query($sql) or die('prob avec la query');

regardes si tu as quelque chose dans la table
avec phpmyadmin si ça change ça marche peu etre
mais c'est pas affiché
0
guilstunt Messages postés 52 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 1 mars 2016
3 nov. 2010 à 22:34
il y a un probleme avec la query

Formulaire validé
1035
0
Requete Gagnante : UPDATE stats SET Probabilite='Gagnant' WHERE Clodo Type='Adversaire'
prob avec la query
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
3 nov. 2010 à 22:42
je me demande si clodo type tu devrais pas ecrire clodo_type
c'est peu l'espace qui plante la query
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
3 nov. 2010 à 22:46
clodo et type sont deux champs distincts ?? tu demansdes rien dans clodo alors faut peu etre l'enlever

UPDATE stats SET Probabilite='Gagnant' WHERE Type='Adversaire'
0
guilstunt Messages postés 52 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 1 mars 2016
3 nov. 2010 à 22:47
Non pareil:

Formulaire validé
1035
0
Requete Gagnante : UPDATE stats SET Probabilite='Gagnant' WHERE Clodo_Type='Adversaire'
prob avec la query
0
guilstunt Messages postés 52 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 1 mars 2016
3 nov. 2010 à 22:49
Ca marche!!!

Mais il y a un probleme il y a que des gagnant alors qu'il devrait y avoir des perdant????
0
guilstunt Messages postés 52 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 1 mars 2016
3 nov. 2010 à 22:50
Le probleme c'est que la requete prend toujours que 0 au lieu du pts maxi de chaque adversaire
0
Rejoignez-nous