SELECT d'un mot de passe dans une autre table

Résolu/Fermé
Utilisateur anonyme - Modifié par jee pee le 1/12/2013 à 18:50
 Utilisateur anonyme - 1 déc. 2013 à 22:06
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

A voir également:

3 réponses

jee pee Messages postés 39721 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 15 mai 2024 9 272
Modifié par jee pee le 1/12/2013 à 18:57
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
Utilisateur anonyme
1 déc. 2013 à 21:08
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
Utilisateur anonyme
1 déc. 2013 à 22:06
Erreur résolue à cause d'un pu**** d'espace invisible à la fin du mot de passe !!
0