|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() |
Bonjour, ma requête doit chercher dans une table 'photodumois' ou le champ 'auteur' correspond au valeur concaténé 'prenom' et 'nom' de ma table 'membre' grace à son id membre.
J'ai essayé ceci: Code :
SELECT * FROM photodumois INNER JOIN membre ON membre.id=%s WHERE auteur = CONCAT(membre.prenom,' ',membre.nom) |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 668 ![]() |
Bonjour,
Et quel est le problème fait ? |
|
|
00
|
|
|
#3 | ||
|
Membre régulier
![]() Francis LennertDéveloppeur informatique Inscription : novembre 2011 Messages : 52 ![]() |
On pourrait imaginer que le problème est soit l'espace en plein milieu, soit des valeurs Null dans les données...
Je ferais donc un Code SQL :
ou en plus joli ( Le concat_ws ne tient pas compte des valeurs Null ). Mais ce ne sont que des suppositions... |
||
|
|
00
|
|
|
#4 |
|
Membre émérite
![]() Adrien Développeur .NET Inscription : janvier 2007 Messages : 924 ![]() |
Ou alors il y a trop d'espace entre nom et prénom...
Ces deux données devraient se trouver dans deux colonnes différentes normalement.
__________________
L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche) |
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() |
Non, le champ auteur contient "Prenom Nom" en toutes lettres.
Je ne connais que l'id de l'auteur qui se trouve dans la table membre. Je souhaiterai dans la même requête obtenir toutes les lignes de photodumois dont le champ photodumois.auteur = membre.prenom.' '.membre.nom |
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() |
En fait il y a rien qui sort avec
Code :
SELECT * FROM photodumois INNER JOIN membre ON membre.id=%s WHERE photodumois.auteur = CONCAT(membre.prenom,' ',membre.nom) Code :
SELECT * FROM photodumois INNER JOIN membre ON membre.id=%s WHERE photodumois.auteur = CONCAT_WS(' ', membre.prenom, membre.nom) Je ne peux plus revenir en arrière pour changer la table photodumois, elle était destinée pour une animation flash qui récupère un nom de fichier, l'auteur (en toute lettre, en texte). Mais j'ai mal pensé pour après quand le membre devra administrer ses photos du mois, voir spcd.org. |
|
|
00
|
|
|
#7 |
|
Membre émérite
![]() Adrien Développeur .NET Inscription : janvier 2007 Messages : 924 ![]() |
petite question :
le %s c'est du code C ? parce que si c'est du pur SQL... je comprends pas bien. Et à cause du INNER, si il n'y a pas de "lien", il ne te sortira rien. Remplace par un left, tu verra
__________________
L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche) |
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() |
j'utilise un sprintf() en php.
Code :
sprintf("SELECT * FROM photodumois INNER JOIN membre ON membre.id=%s WHERE photodumois.auteur = CONCAT(membre.prenom,' ',membre.nom)", GetSQLValueString($idmembre, "int")); |
|
|
00
|
|
|
#9 |
|
Membre émérite
![]() Adrien Développeur .NET Inscription : janvier 2007 Messages : 924 ![]() |
Mais il n'y a pas de jointure alors ?
La jointure doit se faire entre membre et photiodumois. Ca devrait ressembler à ça: Code :
"SELECT * FROM photodumois INNER JOIN membre ON membre.id=photodumois.id_membre WHERE photodumois.auteur = CONCAT(membre.prenom,' ',membre.nom)"
__________________
L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche) |
|
|
00
|
|
|
#10 | |
|
Membre régulier
![]() |
Mais le champ photodumois.id_membre n'existe pas. Je ne pensai pas en avoir besoin de l'id membre au départ.
Si je l'avais mis, je n'aurai pas eu besoin de la table membre. Citation:
|
|
|
|
00
|
|
|
#11 | ||
|
Membre confirmé
![]() Benjamin Consultant informatique Inscription : août 2007 Messages : 160 ![]() |
Code :
|
||
|
|
00
|
|
|
#12 | |||
|
Membre régulier
![]() |
Oh bien oui! et C'est plus logique :
Citation:
|
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com