Version complète: sur le forum Webmaster Hub : Requête sur 3 tables
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
jokerman
Bonjour à tous, je vous soumet mon probleme du jour smile.gif

j'ai 4 tables mysql :
CODE
----------------
user
----------------
id_user

----------------
category
----------------
id_category
id_user

----------------
albums
----------------
id_album
id_category

----------------
photos
----------------
id_photo
id_album


1/ je dois faire une requête afin de vérifier si un user possede des photos, en verifiant toute la chaine category/albums/photos
2/ je dois faire une requête afin de vérifier si un user possede des albums, en verifiant toute la chaine category/albums
2/ je dois faire une requête afin de vérifier si un user possede des category

quel est le moyen le plus simple d'effectuer cette requête ?

Merci de votre aide, et bonnes fetes à tous !
jokerman
je vais detailler ma question un petit peu : je cherche a savoir si le user '$id' possede des photos dans la table "photos"
le probleme est que l'id du user n'est pas stocké dan la table "photos"
l'id est stocké dans une table "category" (les catégories de photos)
ensuite, l'id de la categorie est stocké dans une table "albums", et enfin, les photos sont dans la table "photos" ou est stocké l'id de l'album.
la requete :

CODE
$sql = "SELECT category.id_category,albums.id_album,photos.id_photo LEFT JOIN albums.id_category, photos.id_album WHERE category.id_user= '$id'";


ne donne rien (le serveur du client n'affiche pas les erreurs).

jokerman
cyberlaura
Bonsoir,

le premier point est qu'il manque le FROM à ta requète.

Le plus simple me semblerait être une requète de la forme :


CODE
select * from user,categorie,album,photo where user.id_user=categorie.id_user and categorie.idcategorie=album.idcategorie and album.idalbum=photo.idalbum
jokerman
Bonsoir, je te remercie pour ta réponse, j'ai essayé, ça ne marche pas.

en fait ,
1/ je dois verifier si le user ID possede des photos (au moins 1)
si il a des photos -> true
sinon,
2/ je dois verifier si il a un album (au moins 1)
si il a un album -> true
sinon,
3/ je dois verifier si il a une categorie (au moins 1)
si il a une categorie -> true
sinon -> false

je dois en fait rechercher si l'utilisateur n'a ni photos, ni albums, ni catégories, est-ce plus clair comme cela ?
Findel
Dans la requete suivante, si id_category, id_album et id_photo sont null c'est qu'il n'a rien

CODE
SELECT u.id_user, c.id_category, a.id_album, p.id_photo
FROM user AS u
LEFT JOIN category AS c ON c.id_user = u.id_user
LEFT JOIN albums AS a ON a.id_category = c.id_category
LEFT JOIN photos AS p ON p.id_album = a.id_album
WHERE u.id_user = ...


Sinon, tu peux aussi te baser sur la catégorie simplement, car s'il a une catégorie c'est qu'il a au moins un album dedans, non ? s'il a au moins un album c'est qu'il a au moins une photo dedans, non ?
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.