Ce que j'essaye de faire est de tirer l'information de profil w/les commentaires du profil. Je reçois tout comme prévu. Aucune erreur renvoyée, le tableau est parfaitement formaté. Ma préoccupation est les requêtes qui sont exécutées. Il lance une requête pour chaque identifiant pour obtenir sa photo (le début de la requête est noté dans les commentaires dans le code ci-dessous). Je suppose que c'est le seul moyen d'obtenir des photos par user_id? Tout dans des requêtes séparées? Y a-t-il un meilleur moyen?Beaucoup de requêtes pour afficher les photos des utilisateurs et leurs commentaires. (CakePHP)
J'imagine un profil avec plus de 40 commentaires et c'est effrayant d'imaginer. Est-ce là où Memcached entre?
$profile = $this->Profile->find('first', array(
'conditions' => array('Profile.url' => $url),
'contain' => array(
'User' => array(
'fields' => array(
'User.id','User.name'
),
'Photo' => array(
'fields' => array(
'Photo.thumbnail','Photo.image'
)
)
),
'Comment' => array(
'User' => array(
'fields' => array(
'User.name'
),
'Photo' => array(// right here
'fields' => array(
'Photo.thumbnail'
)
)
)
)
)
));
modifier:
J'ai évidemment une table utilisateur, ainsi qu'une table de commentaire. J'ai aussi une table Photo qui stocke les URL des images des utilisateurs, clé étrangère = user_id. Donc, pendant que j'interroge tous les commentaires d'un profil spécifique et que c'est Comment.user_id, j'ai aussi besoin de récupérer le Photo.thumbnail de la table Photo par son user_id.
Salut, Frankie merci de répondre. Je pense que je dois expliquer ma situation plus clairement. J'ai évidemment une table User, ainsi qu'une table Comment. J'ai aussi une table Photo qui stocke les URL des images des utilisateurs, clé étrangère = user_id. Donc pendant que j'interroge tous les commentaires d'un "article" spécifique comme vous le dites, j'ai aussi besoin de saisir le Photo.thumbnail de la table Photo par son user_id. Désolé pour la confusion, je vais éditer mon post original pour le rendre plus clair pour les autres. – cp3
Pas de problème! Faites-en deux JOINS GAUCHE! Je vais modifier l'exemple. – Frankie
Génial! Merci! Encore une chose. ive édité la requête un peu pour mon application mais quand je demande pour les commentaires im essayant également d'obtenir le nom d'utilisateur alors j'ai essayé: SELECT c.content, c.created, c.modified, p.thumbnail, u.name FROM comments AS c Profils LEFT JOIN AS i ON c.profile_id = i.id GAUCHER JOIN les photos AS p ON i.id = p.user_id UTILISATEURS DE GAUCHE JOINTS p.user_id = u.id O WH c.profile_id = 1 mais il montre le même nom et peut-être le même p.thumbnail. Merci beaucoup pour votre aide. – cp3