Probleme pour recuperer l'idMembre

Eléphant du PHP | 63 Messages

05 août 2009, 09:37

voila ma requete :

Code : Tout sélectionner

$maReqDixDernInscr=mysql_query("SELECT PseudoMembre, PhotoMembre, CiviliteMembre FROM membres, photos_membres WHERE (membres.IdPhotoMembre=photos_membres.IdPhotoMembre) ORDER By `DateInscriptionMembre` DESC LIMIT 0,10");
Poour recuperer l'idMembre j'ajoute donc "IdMembre" dans le "SELECT"

Le souci est que "IdMembre" est présent dans ma table "membres" et dans ma table "photos_membres"
Donc message d'erreur :
#1052 - Column 'IdMembre' in field list is ambiguous
Ce qui est logique etant donné que l'idMembre est sur deux table.

Mais comme puis je le recuperer alors ?

Si quelqu'un peu m'aider.
Avec le temps qui s'écoule je trouve que je m'en sort de mieux en mieux :)

Administrateur PHPfrance
Administrateur PHPfrance | 977 Messages

05 août 2009, 09:59

tu met tout simplement la table d'origine membres.IdMembre
pro : http://www.ohweb.fr -> studio de développement en PHP, expertise en e-commerce, certifié PrestaShop
perso : http://www.olecorre.com -> un dico de termes informatiques

J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé : je ne sais plus comment utiliser mon téléphone. [Bjarne Stroustrup]

Eléphant du PHP | 63 Messages

05 août 2009, 10:15

Je mets dans le "FROM" comme ceci ? :

Code : Tout sélectionner

$maReqDixDernInscr=mysql_query("SELECT IdMembre, PseudoMembre, PhotoMembre, CiviliteMembre FROM membres, photos_membres, membres.IdMembre WHERE (membres.IdPhotoMembre=photos_membres.IdPhotoMembre) ORDER By `DateInscriptionMembre` DESC LIMIT 0,10");
La erreur :
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$maReqDixDernInscr=mysql_query("SELECT IdMembre, PseudoMembre, PhotoMembre, Civi' at line 1

Ou dans le "WHERE" comme ceci ? :

Code : Tout sélectionner

$maReqDixDernInscr=mysql_query("SELECT IdMembre, PseudoMembre, PhotoMembre, CiviliteMembre FROM membres, photos_membres WHERE (membres.IdMembre AND membres.IdPhotoMembre=photos_membres.IdPhotoMembre) ORDER By `DateInscriptionMembre` DESC LIMIT 0,10");
La erreur comme avant :
#1052 - Column 'IdMembre' in field list is ambiguous
Modifié en dernier par consequences le 05 août 2009, 10:23, modifié 1 fois.
Avec le temps qui s'écoule je trouve que je m'en sort de mieux en mieux :)

Administrateur PHPfrance
Administrateur PHPfrance | 977 Messages

05 août 2009, 10:21

euh je t'invite à voir les bases du SQL ! http://www.phpfrance.com/tutoriaux/inde ... ql-de-base

Code : Tout sélectionner

$maReqDixDernInscr=mysql_query("SELECT PseudoMembre, PhotoMembre, CiviliteMembre, membres.IdMembre FROM membres, photos_membres WHERE (membres.IdPhotoMembre=photos_membres.IdPhotoMembre) ORDER By `DateInscriptionMembre` DESC LIMIT 0,10");
pro : http://www.ohweb.fr -> studio de développement en PHP, expertise en e-commerce, certifié PrestaShop
perso : http://www.olecorre.com -> un dico de termes informatiques

J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé : je ne sais plus comment utiliser mon téléphone. [Bjarne Stroustrup]

Eléphant du PHP | 254 Messages

05 août 2009, 10:22

Salut

Je te met un extrait du tutoriel sur la question que tu peux trouver sur ce forum
* Utiliser des alias
Les alias permettent de renommer certaines colonnes et ainsi pouvoir les utiliser facilement dans un GROUP BY, ORDER BY ou HAVING (mais pas dans le WHERE) de la requête SQL, ou même en PHP avec la fonction mysql_fetch_assoc()
Tout sélectionner
SELECT champ1, champ2 + champ3 AS cumul, SUM(champ4) AS total
FROM table WHERE ...
ORDER BY cumul
On peut également donner un alias à une table. Cela permet, lorsque deux tables ont des noms de champ identique (dans le cas de clés étrangères par exemple) de préfixer les champs afin de les distinguer sans ambiguité.
Tout sélectionner
SELECT s.champ1, e.champ1, e.champ2
FROM societe s, employe e
WHERE s.champ1 = e.champ1
"S" et "E" sont des alias désignant respectivement les tables "société" et "employé" qui permettent au SGBD de savoir dans quelle table il doit aller chercher le "champ1" spécifié.
Toi c'est la partie alias de table qui t'interesse

Eléphant du PHP | 63 Messages

05 août 2009, 10:26

Ah dans le select okay grand merci je savais meme pas que l'on pouvais faire ca

Oui en fait avant je faisais plusieurs requete pour afficher et maintenant j'essaye de compacter un peu tout ca
Donc je connais pas grand chose au jointure.

en tout cas grand merci a vous pour aide et info tuto ;)
Avec le temps qui s'écoule je trouve que je m'en sort de mieux en mieux :)

Eléphant du PHP | 254 Messages

05 août 2009, 11:54

Commence par les tuto alors ;) A par celui que je t'ai donné y en a un très bon sur les jointures
faq-tutoriels/les-jointures-niveau-debutant-t21507.html

Eléphant du PHP | 63 Messages

05 août 2009, 19:10

oups
Avec le temps qui s'écoule je trouve que je m'en sort de mieux en mieux :)