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

 MySQL Discussion :

Erreur SQL avec SELECT


Sujet :

MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut Erreur SQL avec SELECT
    Bonjour à tous,
    voila en fait je suis débutant et veux exploiter ma table 'user', pour pouvoir loger des utilisateurs.
    Voici l'erreur qu'il m'est retourné

    Erreur SQL :
    SELECT utilisateur, mdp FROM user WHERE utilisateur = df

    et le code utiliser:
    <?php
    // On démarre la session
    session_start();
    $loginOK = false; // cf Astuce
    $login = $_POST['login'];
    $mdp = $_POST['mdp'];

    //vérififie si les champs son rempli
    if((empty($login))&&(empty($mdp)))
    {
    echo 'Les champs <b>Utilisateur et mot de passe</b> sont vides';
    exit();
    }
    if(empty($login))
    {
    echo 'Le champs <b>Utilisateur</b> est vide';
    exit();
    }
    if(empty($mdp))
    {
    echo 'Le champs <b>Mot de Passse</b> est vide';
    exit();
    }


    // connexion à la base
    $db = mysql_connect('localhost', 'intranet', 'courdel1951') or die ('Erreur de connexion '.mysql_error());

    // sélection de la base
    mysql_select_db('intranet',$db) or die (mysql_error());

    // On va chercher le mot de passe afférent à ce login
    $sql = "SELECT utilisateur, mdp FROM user WHERE utilisateur = $login";
    $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

    $mdp_dat= $data['mdp'];
    echo($mdp_dat);
    // On vérifie que son mot de passe est correct
    if ($mdp == $mdp_dat) {
    $loginOK = true;
    echo("loginOK");
    }


    //verifi si mdp est celui par defaut
    if (($mdp=="maintenance")&&($loginOK)){
    require ('changelogin.php');
    exit();
    }else{
    // On n'effectue les traitement qu'à la condition que
    // les informations aient été effectivement postées

    if ( isset($_POST)) {

    extract($_POST); // je vous renvoie à la doc de cette fonction
    }

    // Si le login a été validé on met les données en sessions
    if ($loginOK) {
    $_SESSION['utilisateur'] = $data['utilisateur'];
    }
    else {
    echo 'Une erreur est survenue, veuillez réessayer !';
    }
    }
    ?>

    Merci d'avance

  2. #2
    Membre averti Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 402
    Points
    402
    Par défaut
    Salut,

    Dis ça aurait été bien si tu avais utilisé les balises [ code ]

    Sinon pour ta requête, moi j'aurais mis des double quotes (ou des simples) autour de df.

    Et au fait c'est pas une erreur que tu nous indiques mais une requêtes simplement

    Pour afficher une erreur SQL il faut se servir de mysql_error(). Mets le dans ton die() suivant ton mysql_query.

    Edit : 'tention à la concaténation ainsi qu'à l'utilisation des simple et des double quote... se référer au cours si tu ne sais pas

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    en fait, les lignes que je pense pose problème sont celle ci:

    $sql = "SELECT utilisateur, mdp FROM user WHERE utilisateur = $login";
    $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

    dans l'erreur ci dessus "df" est attribué à $login.
    J'ai du oublier quelque chose, mais où????????????

  4. #4
    Membre averti Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 402
    Points
    402
    Par défaut
    Ouiiiiiiiiiiiiiiii c'est certain d'après "l'erreur" que tu indiques.

    Mais si tu pouvais (comme je te l'ai dit) utiliser la fonction mysql_error() là où il faut, tu pourrais connaître la nature même de l'erreur. Et à mon avis tu aurais pu débugger ça tout seul...

    Alors ce mysql_error() il répond quoi ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Quand je met:
    mysql_error()

    il me retourne:
    Champ 'mathieu' inconnu dans where clause

    mathieu etant un exemple.
    merci d'avance pour votre aide

  6. #6
    Membre averti Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 402
    Points
    402
    Par défaut
    Ecris ta requête comme çà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'SELECT utilisateur, mdp FROM user WHERE utilisateur="'.$login.'"';
    Tu oublis que ton login est une chaine (VARCHAR, TEXT,...) et que donc ta clause WHERE doit ressembler à champ="valeur", et non champ=valeur.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    merci il ne me met plus d'erreur, mais il ne me renvoi pas mon mdp correspondand à l'utilisateur. Pouvez vous me dire pourquoi?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $sql = 'SELECT utilisateur, mdp FROM user WHERE utilisateur="'.$login.'"';
      $req = mysql_query($sql) or die(mysql_error());
     
      $mdp_dat= $data['mdp'];
      echo($mdp_dat);
    merci d'avance

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Essaye ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql = 'SELECT utilisateur, mdp FROM user WHERE utilisateur="'.$login.'"';
    $req = mysql_query($sql) OR die(mysql_error());
     
    while( odbc_fetch_row( $req) ) { 
     
          $mdp_dat= odbc_result($req , "mdp");
    }
    echo $mdp_dat;

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    quand j'essai ca ca me renvoi:

    Fatal error: Call to undefined function: odbc_fetch_row() in /home/kwartz/www/intranet/maintenance/verifLogin.php on line 36

    donc j'ai essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while( mysql_fetch_row($req) ) { 
     
          $mdp_dat = mysql_result($req , "mdp");
    }
    et la il ne me donne toujours pas mon mdp

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Tu as esayé de mettre à la place de login, le vrai login c'est à dire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = 'SELECT utilisateur, mdp FROM user WHERE utilisateur="toto"';

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    je viens d'essayé avec un utilisateur qui est dans la base et ca ne fonctionne pas.

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    en fait, il me renvoi mathieu quand le code est la suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      $sql = 'SELECT utilisateur, mdp FROM user WHERE utilisateur="mathieu"';
    $req = mysql_query($sql) OR die(mysql_error());
     
    while( mysql_fetch_row($req) ) { 
     
          $mdp_dat = mysql_result($req , "mdp");
    }
    echo $mdp_dat;
    exit();

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Teste ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql = "SELECT utilisateur, mdp FROM user WHERE utilisateur='mathieu'";
    $req = mysql_query($sql) OR die(mysql_error());
     
    $mdp_dat= mysql_result($req ,0,"mdp"); 
     
     
    echo "test".$mdp_dat;
    exit();

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    ca marche, je récupère le mot de passe, mais peut tu me dire a quoi correspond le 0 dans la ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $mdp_dat= mysql_result($req ,0,"mdp");
    merci beaucoup pour tout.

  15. #15
    Membre averti Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 402
    Points
    402
    Par défaut
    Va voir sur php.net et tape "mysql_result" dans le champ de recherche en haut à droite, tu auras LA documentation, avec entre autre les différents paramètres que cette fonction peut prendre.

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    ok, Encore une fois merci beaucoup.

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

Discussions similaires

  1. Erreur SQl pour select count avec critere date
    Par fdalyon dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 10/05/2010, 19h50
  2. Gestion erreur Sql avec UIB
    Par AuBozon dans le forum SQL
    Réponses: 0
    Dernier message: 11/02/2008, 11h46
  3. Erreur Sql avec Access en C#
    Par oadin dans le forum Accès aux données
    Réponses: 1
    Dernier message: 28/08/2007, 20h01
  4. Récupérer une erreur SQL avec TIBDataSet
    Par cgone dans le forum Bases de données
    Réponses: 3
    Dernier message: 25/10/2006, 00h00
  5. Erreur 1045 avec select into outfile
    Par mikaelm dans le forum Administration
    Réponses: 7
    Dernier message: 18/08/2005, 14h45

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