Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/10/2006, 16h09   #1
Invité de passage
 
Inscription : octobre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 9
Points : 1
Points : 1
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
matt0749 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2006, 17h31   #2
Membre éclairé
 
Avatar de Huntress
 
Inscription : août 2004
Messages : 454
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 454
Points : 339
Points : 339
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
__________________

Règle n°1 du forum francophone : Parler le français...
Pas de question technique par MP, le forum est fait pour çà, merci.
Huntress est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2006, 17h38   #3
Invité de passage
 
Inscription : octobre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 9
Points : 1
Points : 1
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ù????????????
matt0749 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2006, 17h41   #4
Membre éclairé
 
Avatar de Huntress
 
Inscription : août 2004
Messages : 454
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 454
Points : 339
Points : 339
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 ?
__________________

Règle n°1 du forum francophone : Parler le français...
Pas de question technique par MP, le forum est fait pour çà, merci.
Huntress est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2006, 17h43   #5
Invité de passage
 
Inscription : octobre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 9
Points : 1
Points : 1
Quand je met:
mysql_error()

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

mathieu etant un exemple.
merci d'avance pour votre aide
matt0749 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2006, 17h46   #6
Membre éclairé
 
Avatar de Huntress
 
Inscription : août 2004
Messages : 454
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 454
Points : 339
Points : 339
Ecris ta requête comme çà :

Code :
$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.
__________________

Règle n°1 du forum francophone : Parler le français...
Pas de question technique par MP, le forum est fait pour çà, merci.
Huntress est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2006, 08h18   #7
Invité de passage
 
Inscription : octobre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 9
Points : 1
Points : 1
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 :
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
matt0749 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2006, 08h36   #8
Membre confirmé
 
Inscription : novembre 2004
Messages : 364
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 364
Points : 202
Points : 202
Essaye ça :

Code :
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;
tazmania est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2006, 08h53   #9
Invité de passage
 
Inscription : octobre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 9
Points : 1
Points : 1
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 :
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
matt0749 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2006, 09h12   #10
Membre confirmé
 
Inscription : novembre 2004
Messages : 364
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 364
Points : 202
Points : 202
Tu as esayé de mettre à la place de login, le vrai login c'est à dire :

Code :
1
2
 
$sql = 'SELECT utilisateur, mdp FROM user WHERE utilisateur="toto"';
tazmania est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2006, 09h55   #11
Invité de passage
 
Inscription : octobre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 9
Points : 1
Points : 1
je viens d'essayé avec un utilisateur qui est dans la base et ca ne fonctionne pas.
matt0749 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2006, 10h00   #12
Invité de passage
 
Inscription : octobre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 9
Points : 1
Points : 1
en fait, il me renvoi mathieu quand le code est la suivant:
Code :
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();
matt0749 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2006, 12h18   #13
Membre confirmé
 
Inscription : novembre 2004
Messages : 364
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 364
Points : 202
Points : 202
Teste ça :

Code :
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();
tazmania est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2006, 12h55   #14
Invité de passage
 
Inscription : octobre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 9
Points : 1
Points : 1
ca marche, je récupère le mot de passe, mais peut tu me dire a quoi correspond le 0 dans la ligne.

Code :
1
2
 
$mdp_dat= mysql_result($req ,0,"mdp");
merci beaucoup pour tout.
matt0749 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2006, 13h00   #15
Membre éclairé
 
Avatar de Huntress
 
Inscription : août 2004
Messages : 454
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 454
Points : 339
Points : 339
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.
__________________

Règle n°1 du forum francophone : Parler le français...
Pas de question technique par MP, le forum est fait pour çà, merci.
Huntress est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2006, 13h04   #16
Invité de passage
 
Inscription : octobre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 9
Points : 1
Points : 1
ok, Encore une fois merci beaucoup.
matt0749 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h30.


 
 
 
 
Partenaires

Hébergement Web