SELECT d'un mot de passe dans une autre table

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,

J'ai 2 tables dans une base SQL :

table 1 : association
champs :mail - password

table 2 : utilisateurs
champs : pseudo - association_id

J'essaie de mettre un place un système de connexion ou une association a un mot de passe identique pour tout ses membres.

Lors de la requête, je souhaite quelquechose du genre :

Vérifie que le pseudo corresponde au password.

Mes 2 tables sont liées avec une clé étrangère.

J'ai essayé ceci mais sans résultat :

$req = $bdd -> prepare("SELECT utilisateurs.pseudo, association.password 
FROM utilisateurs 
LEFT JOIN association ON association.association_id = utilisateurs.id 
WHERE pseudo = '$pseudo' AND password = '$password'");


J'obtiens erreur :
Array ( [0] => 42S22 [1] => 1054 [2] => Unknown column 'association.association_id' in 'on clause' ) 1

Des idées ?

Merci de votre aide

3 réponses

  1. jee pee Messages postés 31901 Date d'inscription   Statut Modérateur Dernière intervention   9 984
     
    Bonjour,

    Le moteur du sgbd indique que la colonne association.association_id n'existe pas. Ce qui semble exact au vu des 2 champs que tu donnes pour cette table.

    Tu n'as pas donné quel est le sgbd que tu utilises. Mais peut être existe t-il sur chaque table un pseudo champ
    id
    .

    La syntaxe serait alors du style :
     
    ON utilisateurs.association_id = association.id


    cdlt

            Un étranger, c'est un ami qu'on n'a pas encore rencontré.
    1
  2. Utilisateur anonyme
     
    Bien vu !
    Merci :-)

    En revanche pour la suite de ma connexion j'ai un souci au niveau du password.

    // Requête sur la base de donnée
    		$reponse = $bdd->query("SELECT * FROM utilisateurs LEFT JOIN association ON utilisateurs.association_id = association.id WHERE pseudo='".$pseudo."' AND password='".$password."';");
    		$resultat = $reponse->fetch();
    		$pseudoTrouve = $resultat['pseudo'];
    		$passwordTrouve = $resultat['password'];
    		 
    		echo 'pseudoTrouvé:'.$pseudoTrouve.' / passwordTrouvé:'.$passwordTrouve.'<br>';
    		
    		// On compare le pseudo et MotDePasse
    		if ($pseudoTrouve==$pseudo AND $passwordTrouve==$password) {
    			session_start();
    	        $_SESSION['pseudo'] = $pseudo;
    	    	echo 'OK';
    	    } else {   
    	        echo 'Vos identifiants sont incorrects';
    	    }
    


    Bien que les pseudos et passwords correspondent entre eux, je n'arrive pas à me connecter.
    En revanche, lors de la connexion, lorsque j'enlève le :
    AND $passwordTrouve==$password
    la connexion se fait.

    Bizarre...
    Cela ne peut pas venir du LEFT JOIN ? Car lors d'une requête normal, la connexion se fait bien...
    0
  3. Utilisateur anonyme
     
    Erreur résolue à cause d'un pu**** d'espace invisible à la fin du mot de passe !!
    0