Accueil > Forum > > > > Requête Multi-tables. Erreur d'ambiguité.
Requête Multi-tables. Erreur d'ambiguité.
samedi 29 novembre 2008 à 21:27:06 |
Requête Multi-tables. Erreur d'ambiguité.

xeroxiss
|
Bonjour à tous, J'ai un petit soucis avec une requête. Je tourne en rond  Je voudrais faire un SELECT sur 3 tables différentes avec un WHERE email=$_POST=['email'] juste pour une vérification. Donc j'ai d'abord essayer sur 2 tables différentes avec : SELECT amembres.email, bmembres.email FROM amembresLEFT JOIN bmembresON amembres.email=bmembres.emailWHERE email=$_POST=['email']
Et puis j'ai essayé des d'autres requêtes mais rien ne fonctionne, j'ai des messages du type de
Column 'email' in where clause is ambiguous ou d'autres erreurs. Voilà si vous avez des informations pouvant me mettre sur la voie... Merci 
|
|
dimanche 30 novembre 2008 à 09:29:21 |
Re : Requête Multi-tables. Erreur d'ambiguité.

TropNul
|
Bonjour xeroxiss,
Le message d'erreur est pourtant simple.
Tu as mal écrit ceci email=$_POST=['email']
Ce serait mieux ainsi :
email=\'$_POST['email']\'
Par contre, pour la requête, regarde dans la doc de mysql pour être sure de la syntaxe.
Cdt
|
|
dimanche 30 novembre 2008 à 09:36:35 |
Re : Requête Multi-tables. Erreur d'ambiguité.

yopai_v
|
Il te dit lui-même l'erreur : 2 Column 'email' 1 in where clause 3 is ambiguous 1. Dans la clause Where (donc on va regarder WHERE email=$_POST=['email'])
2. la colonne "email" (on repère le WHERE email=) 3. est ambiguë En effet, il ne sait pas si le champ qu'il doit vérifier est amembres.email ou bmembres.email Il faut donc lui préciser (WHERE amembres.email=... ou WHERE bmembres.email=...) Au passage, je suppose que l'écriture WHERE email=$_POST=['email'] est symbolique (en plus il y a un = en trop), car de toute manière MySql ne connaîtra jamais $_POST. La construction de ta requête devrait se présenter de la manière suivante : $sql = ' SELECT amembres.email, bmembres.email FROM amembres LEFT JOIN bmembres ON amembres.email=bmembres.email WHERE {amembres ou bmembres}.email='.chr(39).addslashes($_POST['email']).chr(39);
Attention à l'incompatibilité entre addslashes (méthode conseillée) et magic_quotes_gpc (mauvaise méthode de sécurité), qui doit déjà se trouver dans 12375 articles de forum, mais si tu veux des explications envoie moi un MP, je te les fournirais avec joie. Attention à la différence entre INNER JOIN et LEFT JOIN - j'aurais tendance à dire que c'est plutôt un INNER JOIN que tu veux, mais c'est juste une impression que me donne ton code. J'attire ton attention sur le sujet pour que tu te poses la bonne question.
|
|
dimanche 30 novembre 2008 à 09:44:08 |
Re : Requête Multi-tables. Erreur d'ambiguité.

xeroxiss
|
Bonjour, Merci de vos réponses ! Je vais essayer tout cela. Enfaite j'ai besoin d'effectuer cette requête. Car j'ai 3 sortes de membres bien différents les uns des autres. (Donc 3 tables) Et j'ai besoin de vérifier que l'email ne soit pas déjà utilisé à l'inscription par un autre membre dans les 3 autres table. Et il en est de même pour la connexion à l'espace membre, je dois effectuer une vérification sur sont email et son mot de passe dans les 3 tables en même temps. Car pour l'instant j'ai 3 formulaires de connexion différents. (Pas très pratique !) J'essaye vos solutions et je vous remercie de vous pencher sur mon sujet. Bon dimanche ! 
|
|
dimanche 30 novembre 2008 à 11:42:00 |
Re : Requête Multi-tables. Erreur d'ambiguité.

malalam
|
Hello, tu vas aussi avoir un problème à la récupération de tes infos. Tu dois "aliaser" les champs que tu récupères : $sql = ' SELECT amembres.email AS aMembresEmail, bmembres.email AS bMembresEmail FROM amembres LEFT JOIN bmembres ON amembres.email=bmembres.email WHERE \''.$_POST['email'].'\' IN(amembres.email, bmembres.email)';
Mais un OR est mieux, plus performant : WHERE amembre.email = ... OR bmembres.email = ...
|
|
dimanche 30 novembre 2008 à 14:40:13 |
Re : Requête Multi-tables. Erreur d'ambiguité.

xeroxiss
|
Salut, Donc là j'ai essayé et ça fonctionne pas terrible. J'ai pas dit que vos explication n'étaient pas bonnes ! Merci de vos réponses. Seulement voici ma requête (qui fonctionne) pour la connexion. C'est là que ça ne marche pas terrible lol if (isset( $_POST[' email'])){ $ email = htmlentities(addslashes($_POST[' email'])); $ pass = htmlentities(addslashes(md5($_POST[' pass']))); mysql_select_db($database, $connexion); $verif_query= sprintf(" SELECT * FROM amembres WHEREemail='$ email' ANDpass='$ pass'"); $verif = mysql_query($verif_query, $connexion) or die(mysql_error()); $row_verif = mysql_fetch_assoc($verif); $utilisateur = mysql_num_rows($verif); Donc si j'essaye de l'adapter avec un concentré de vos gentilles réponses cela donne : if (isset( $_POST[' email'])){ $ email = htmlentities(addslashes($_POST[' email'])); $ pass = htmlentities(addslashes(md5($_POST[' pass']))); mysql_select_db($database, $connexion); $verif_query= sprintf(" SELECTamembres. emailAS aMembresEmail, bmembres.email AS bMembresEmail amembres.pass AS aMembresPass, bmembres.pass AS bMembresPassFROM amembresLEFT JOIN bmembres ON amembres.email=bmembres.email , amembres.pass=bmembres.pass WHERE '$ email' ANDpass='$ pass' IN(amembres.email, bmembres.email,amembres.pass, bmembres.pass)"); $verif = mysql_query($verif_query, $connexion) or die(mysql_error()); $row_verif = mysql_fetch_assoc($verif); $utilisateur = mysql_num_rows($verif); Voilà que pensez-vous de ma requête ? Car elle ne fonctionne pas ^^ Merci  Ps : J'espère que les couleurs vous aide je fait de mon mieux 
|
|
dimanche 30 novembre 2008 à 14:47:12 |
Re : Requête Multi-tables. Erreur d'ambiguité.

malalam
|
Hello,
oula...ton adaptation est un massacre :-) !! Un petit tour sur une doc SQL serait le bienvenu... SELECT amembres.emailAS aMembresEmail, bmembres.email AS bMembresEmail, amembres.pass AS aMembresPass, bmembres.pass AS bMembresPassFROM amembres LEFT JOIN bmembres ON amembres.email=bmembres.email AND amembres.pass=bmembres.pass WHERE amembres.email = '$email' ANDamembres.pass='$ pass'
en tenant compte du fait que tu connais la différence entre LEFT JOIN et INNER JOIN...?
|
|
dimanche 30 novembre 2008 à 15:33:56 |
Re : Requête Multi-tables. Erreur d'ambiguité.

xeroxiss
|
Merci d'avoir répondu malalam ! Heu la différence.... INNER affiche les concordance et LEFT affiche tout ?  Ton code ne me retourne pas d'erreur néanmoins je ne sais me connecter uniquement avec une adresse et un pass de la table amembres. Si j'essaye de créer une adresse dans la tablebmembres avec un pass. Il me retourne une erreur de mon script " Identifiant ou pass incorrecte". Merci 
|
|
dimanche 30 novembre 2008 à 15:48:48 |
Re : Requête Multi-tables. Erreur d'ambiguité.

malalam
|
LEFT JOIN implique tu aies quelque chose dans la table de gauche (amembres ici), INNER JOIN, dans les deux, RIGHT JOIN, dans celle de droite. Donc...là, on attend que amembres soit remplie, et éventuellement que les conditions sur bmembres le soient aussi. Si tu ne remplis QUE bmembres, et pas amembres, cette requête ne renverra rien. Donc ton problème est normal. Explique le but et les contextes possible ?
|
|
dimanche 30 novembre 2008 à 16:09:08 |
Re : Requête Multi-tables. Erreur d'ambiguité.

xeroxiss
|
Ah d'accord je me disais aussi que j'avais compris tout dans le bon ordre  Merci pour ces explications. (Je comprend mieux !) Enfaite au départ j'ai posté car à l'inscription je vérifiais si l'email était déjà utilisée ou non. J'ai remarqué que cela allais créer un conflit car je ne vérifiais qu'une table donc une même adresse pouvait s'inscrire sur les 3 formulaires différents. (3 tables). Ensuite je me rend compte que pour la connexion cela pose le même problème. (Il faut effectuer une vérification sur au moins 2 table.) Donc pour résumer : La requête si dessus doit vérifier la présence de l'email et du mot de passe dans les 2 table différentes. Exemple : Table amembres#0 email pass#1 toto@mail.com1234#2 fifi@mail.com12584Table bmembres#0 email pass#1 albert@mail.com5555#2 srrsrrr@mail.com1111Sur le formulaire de connexion l'utilisateur saisi son adresse email et le script recherche si elle est présente dans LES tables amembres et bmembres. Ensuite si elle corresponde aux mail et au pass alors redirection. Est-ce plus claire ou je m'exprime trop mal lol 
|
|
Cette discussion est classée dans : erreur, email, requête, multi, tables
Répondre à ce message
Sujets en rapport avec ce message
multi recherche mysql ??? [ par stephane ]
saluttout simplement je voudrai savoir comment effectuer une requete my sql dans toutes les tables (je pense que c'est faisable mais je ne sais pas co
requête de non concordance avec jointure 3 tables [ par dubitoph ]
ChristopheHé oui, je suis toujours là avec mes angoisses pour mon mémoire.J'ai une base de données MySql qui contient, en autres, une table "interimai
Requête SQL [ par nino69 ]
Il y a une erreur de syntaxe sur la requête ci dessous:"SELECT jet_chantier.'".$_POST['clients']."FROM jet_chantier WHERE jet_chantier.titre_lien= " .
pb de formulaire mail lié à une variable GET [ par melanijasmin ]
salut à tous !Je fais appel à vos lumières expertes, car je bloque depuis plusieurs jours sur un "%@!!& " de formulaire auquel je ne comprends plus r
Erreur fsockopen() [ par cseagle ]
Bonjour, J'essaye d'utiliser cette fonction pour vérifier l'éxistence de l'email. Le problème c'est qu'avec une adresse du type t@tyuiop.com il me fa
Sous-requête avec MYSQL [ par bonjovi51 ]
Bonjour à toutes et à tous Je voudrai svoir si MYSQL Supporte les sous requêtes. Si oui, j'aimerai bien voir où se trouve mon erreur. Voilà, je vous
multi-tables [ par gleyne ]
Bonjour,j'ai fait SELECT avec 2 tables phpwebgallery_fiche.*,phpwebgallery_categories.*il y a des éléments en commun et je voudrai avoir le résultatd'
Tri dans les résultats d'une requête pour éviter les doublons [ par Spartan ]
Bonjour, c'est le première fois que je poste sur ce forum, il est probable que je pose une question à laquelle il a déjà été répondu (le moteur de rec
Ne veut pas s'ajouter a la base de données [ par romain14g59 ]
bonjour je vient d'esseyer de crer un script pour ajouter des données dans ma base de données MYSQL a partir d'un formulaire mais quand je valide mon
contact via formailre mail (ne passe pas) [ par speedylol ]
bonjour j'ai un petit soucis avec mon formailare de contact pat mail , il ne passe pas je reviens toujours a la case réessayez seriez vous m'aider svp
Livres en rapport
|
Derniers Blogs
[TECHDAYS 2010] #03 - WEB CONTENT MANAGEMENT SOUS SHAREPOINT 2010[TECHDAYS 2010] #03 - WEB CONTENT MANAGEMENT SOUS SHAREPOINT 2010 par pierre
Stephane Cordonnier de MCNext nous présente les fonctionnalités Web Content Management (WCM) sous SharePoint 2010. Qu'est-ce que le WCM ECM, GED, RM, WCM c'est quoi Plateforme SharePoint Versions SharePoint 2010 SharePoint Fondation...
Cliquez pour lire la suite de l'article par pierre [DESIGN PATTERNS] PARTIE 2: DIP: DEPENDENCY INVERSION PRINCIPLE[DESIGN PATTERNS] PARTIE 2: DIP: DEPENDENCY INVERSION PRINCIPLE par tja
C'est le dernier principe des principes du Design Orienté Objet (The Principles of Object Oriented Design) fondés par Robert C. Martin plus connu sous le pseudonyme d'Uncle Bob.
l'image empruntée de LosTechies.
Je ne traite pas les principes dans...
Cliquez pour lire la suite de l'article par tja TECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURSTECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURS par ROMELARD Fabrice
Animé par: Laurent Cotton Le développement dans SharePoint 2010 passe par plusieurs axes qui seront évoqués dans cette session, mais plus particulièrement les développements simples lié au besoin Business Business Connectivity Services Ce BCS es...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOURTECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOUR par ROMELARD Fabrice
Cette session est la dernière pleinière de ces 3 jours de TechDays Paris 2010. Généralement, cette troisième journée est plus axée sur l'avenir vu par Microsoft. Après un retour sur l'avenir vu par la Science Fiction ou par ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
Comparez les prix

HTC Hero
Entre 550€ et 550€
|