IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] erreur d'utilisation de variable [Débutant(e)]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 3
    Par défaut [SQL] erreur d'utilisation de variable
    Bonjour tout le monde, je tien à dire merci pour les cours que vous proposez j'ai réussi à commencer un truc bien grace à vous tous !

    mais, oui il y as toujours un Mais, je bloque sur une petite fonction ' if ', et je vien vous demandez de l'aide !

    explication de pourquoi du comment j'utilise le php,
    je fait une annimation flash ou il faut rentrer un loggin et mdp, et apré crée un nouveau nom de joueur, donc pour pas qu'il y ai de probléme je fait ma petite commande sql, tak je prend la valeur qui faut et je vérifie enfait si le pseudo du joueur n'existe pas déja ! si oui lui dire de tester un autre, sinon il peu continuer
    Mais l'erreur est en rouge, enfait ça marche pas la condition n'est jamais bonne


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
    session_start(); 
    if(isset($_POST['PlayerNameTapperDansFlash''])) $PlayerNameTapperDansFlash'= utf8_decode($_POST['PlayerNameTapperDansFlash']); else $login="inconnu";
    function envoi($var, $val){
    echo "&".$var."=".utf8_encode($val);
    }
    require_once('connexionLogin.php'); 
    mysql_select_db($database_connexionLogin, $connexionLogin);
    
    $PlayerNameDB = "SELECT Name FROM dolcharacters WHERE Name='$PlayerNameTapperDansFlash''"; 
    if($PlayerNameTapperDansFlash == $PlayerNameDB){ //la commande SQL marche bien, mais on dirai qu'il ne veu pas prendre en compte: $PlayerNameDB dans le if
    
    envoi("retour","PasOkPlayerNameDjaUse");
    //retour à flash ! li l'erreur pseudo déja use !
    }
    else
    {
    envoi("retour","OkPlayerNamePasUse");
    //retour à flash ! li la suite du programme flash
    }
    ?>


    Tester avec:
    if($PlayerNameTapperDansFlash == 'Tartanpion')
    et quand le formulaire flash arrive je tappe bien: Tartanpion
    et ça me dit bien de utiliser un autre pseudo, donc voilà c'est tout dit, je pense que ça doie être tout bête, mais apré avoir fait 200trucs diférent je sais plus ou me référencer . . .

  2. #2
    Membre Expert
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Par défaut
    J'ai l'impression que tu n'exécutes pas ta requête sql
    Il faudrait pas un petit mysql_query par hasard?

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 3
    Par défaut
    enfait là je vous ai poste le truc qui me parraissez le plus correct, mais j'ai fait aussi comme vous avez dit avec ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $query_rsPlayerNameDB = "SELECT Name FROM dolcharacters WHERE Name='$PlayerNameTapperDansFLash'";
    mysql_query($query_rsPlayerNameDB);

    mais apré dans le 'if' il faut marquer quoi ?
    if($query_rsPlayerNameDB == $PlayerNameTapperDansFLash')
    ?
    enfait ce que j'arrive pas a faire, c'est mettre le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'SELECT Name FROM dolcharacters WHERE Name='$PlayerNameTapperDansFLash'
    >>>>>>> Dans une variable

    enfait j'ai jamais euh encore besoin de faire de select
    j'ai toujours fait des UPDATE , mais j'ai vitte vue que ça possait probléme :p

    (j'ai utiliser ça: et ne marche pas )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $PlayerNameDB = mysql_query("SELECT Name FROM dolcharacters WHERE Name='$PlayerNameTapperDansFLash'");

  4. #4
    Membre Expert
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Par défaut
    Essaie quelque chose comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $query_rsPlayerNameDB = "SELECT Name FROM dolcharacters WHERE Name='$PlayerNameTapperDansFLash'";
    $result = mysql_query($query_rsPlayerNameDB);
    $PlayerNameDB = mysql_fetch_array($resultat);
    Ensuite tu fais ton if sur $PlayerNameDB['Name']

  5. #5
    Membre émérite Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Par défaut
    Hello,

    Il faut dire que chacun a sa propre manière de coder et perso je ne code pas de la meme facon....
    Mais bon au premier abord je vois un ou deux problemes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_select_db($database_connexionLogin, $connexionLogin);
    Bon, alors ici, il semble que tu te connectes a ta base de données, ce qui est bien.... A voir si la connection et bonne...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $PlayerNameDB = "SELECT Name FROM dolcharacters WHERE Name='$PlayerNameTapperDansFlash''";
    Ici tu définis ta requete ce qui est bien. Mais ce qui est stocké dans $PlayerNameDB c'est la requete SQL pas le résultat. De plus je pense qu'elle est mal écrite et qu'elle génerera une erreur. Personnellement j'aurais écris ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $PlayerNameDB = "SELECT Name FROM dolcharacters WHERE Name='".$PlayerNameTapperDansFlash."';";
    Bref donc maintenant qu'elle est écrite a peu près correctement, il faudrait voir a l'envoyer.... Si tu veux un réultat. Et comme je pense que tu souhaites que la valeur du résultat sois stocké dans $PlayerNameDB, j'aurais donc plutot tenté ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $query = "SELECT Name FROM dolcharacters WHERE Name='".$PlayerNameTapperDansFlash."';";
    $PlayerNameDB = mysql_fetch_array($query) or die("La requete a échoué");
    Bref maintenant que "en théorie" la valeur de la requete est stockée ou il faut, il faut aller la chercher. Et c'est là que je suis moins sur de moi....

    Je dirais que en théorie, tu devrais retrouver ta valeur si tu fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($PlayerNameTapperDansFlash == $PlayerNameDB[0]['Name']) {
    Sinon essaie des variations au niveau de $PlayerNameDB[0]['Name']

    Cependant, et en me relisant, je me rends compte que ton check est stupide... En effet, tu lui demande de chercher un Name qui est egal a $PlayerNameTapperDansFlash. Puis apres tu lui demande de comparer $PlayerNameTapperDansFlash au resultat de la requete (vois tu le probleme ?)

    Tu devrais plutot verifier si le resultat remonte des lignes...
    Si le resultat remonte une ligne, cela veut dire qu'il a un pseudo qui y ressemble dans la base. Si il ne remonte rien, cela veut dire que le pseudo n'existe pas....

    Du coup le check serait ecris de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($PlayerNameDB) {
    Ce qui veut dire, si le tableau $PlayerNameDB n'est pas vide alors....


    J'espere que cela pourra t'aider...

    @+
    Cadoudal56

  6. #6
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 3
    Par défaut
    $query_rsPlayerNameDB = "SELECT Name FROM dolcharacters WHERE Name='$PlayerNameTapperDansFLash'";
    $result = mysql_query($query_rsPlayerNameDB);
    $PlayerNameTapperDansFLash = mysql_fetch_array($resultat);

    ok marche a merveille
    un grand merci à Jbrasselet et Cadoudal56

    15min au total pour pouvoir me répondre, me donner la solution, et mettre ce sujet en Résolu. bah franchemant à 9h du matin, moi je dit chapeau et GG

    vous pouvez aller voir mon site Kdo !

    http://81.56.156.44

    j'utilise easy php pour le moment, on me dit que je doie avoir honte mais bon faut bien commencer par qque choze :p



    (Pseudo de test: DDD)
    dans account et mdp, tapper qque chose au harard ki n existe pas dans ma db :p

  7. #7
    Membre émérite Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Par défaut
    Holalalalala

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $query_rsPlayerNameDB = "SELECT Name FROM dolcharacters WHERE Name='$PlayerNameTapperDansFLash'";
    $result = mysql_query($query_rsPlayerNameDB);
    $PlayerNameTapperDansFLash = mysql_fetch_array($resultat);
    Tu lui demande de regarder si il y a quelquechose dans la base qui correspond a $PlayerNameTapperDansFLash dans la base et ensuite tu stockes le résultat dans la meme valeur....

    Lis la fin de mon post précédent.... Tu verras la logique a adopter...

    @+
    cadou

  8. #8
    Membre Expert
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Par défaut
    Je l'ai corrigé rapidement. Erreur de copier-coller

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. utiliser une variable déclaré en delphi dans un sql
    Par jamdinhe dans le forum Bases de données
    Réponses: 12
    Dernier message: 28/06/2018, 09h32
  2. Utilisation de variable contenant des nombres a virgule en SQL
    Par Rukawa dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 27/10/2006, 18h54
  3. [SQL] Utilisation de variables dans une requête SQL
    Par heteroclite dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 07/09/2006, 22h38
  4. [sql] comment utiliser une variable global
    Par imedg dans le forum Oracle
    Réponses: 21
    Dernier message: 02/05/2006, 15h21
  5. probleme d'utilisation de variables reel dans 1 requete SQl
    Par arawak dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 12/01/2006, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo