2011-03-29 4 views
0

Bon, j'ai un problème. J'ai un site de réseautage social et j'ai du code qui appellera les statuts d'amis seulement. Je veux qu'il appelle les deux statuts des amis ainsi que l'utilisateur connecté. Un peu comme le fait facebook.Question sur les syndicats

Tables: les membres, les amis, le statut

membres - Poignée

amis - Nom d'utilisateur, ami

état - Poignée, type (public ou amis)

Voici code qui affiche le statut le plus récent des amis d'un utilisateur.

$shawing = "SELECT * FROM status JOIN friends ON status.Handle = friends.Friend where friends.Username='$members[Handle]' and status.Type='friends' ORDER by status.Id DESC" or print mysql_error();

membres $ [Handle] appels d'un include qui identifie l'utilisateur qui est connecté.

Quelqu'un m'a dit une Union fonctionnerait, mais je n'ai été en mesure de faire un état montrer et le code que j'ai maintenant n'a qu'un seul résultat.

Fondamentalement, je veux prendre la liste des noms d'utilisateur de la liste d'amis de la personne et ajouter le nom d'utilisateur de l'utilisateur connecté et afficher seulement les statuts de la section des amis avec ces noms d'utilisateur.

En outre, ce serait génial si je pouvais obtenir une structure pour le code parce que je suis nouveau dans l'ensemble JOIN et UNION. Je le comprends, bien sûr, je ne comprends pas comment c'est correctement configuré.

+0

Aussi, il serait judicieux de mentionner que j'ai un peu de temps après le code, et cela fonctionne dans d'autres scénarios. – Brad45

+0

Parce que j'essaie de m'apprendre? – Brad45

+0

Pourquoi ne nous avez-vous pas montré ce que vous avez réellement essayé? http://dev.mysql.com/doc/refman/5.1/fr/union.html – zerkms

Répondre

1

Plus vous utilisez d'UNION et de JOIN, plus vous commencez à accumuler. Une fois que vous avez essayé de mettre à l'échelle cela par 10 000 enregistrements, vous commencerez à voir cette requête dans le journal de requête lente de vos serveurs.

Je suggère de rester simple et d'exécuter deux requêtes.
1ère requête: Obtenez le statut des utilisateurs
2ème requête: Obtenez les utilisateurs amis état

La première requête doit être très vite que vous êtes très probablement en utilisant les utilisateurs userid (clé primaire sur la table, oui?). Parfois, le meilleur moyen est de garder les choses simples.

+0

Merci pour le conseil, mais comment puis-je obtenir la liste des amis d'un utilisateur sans utiliser JOIN? J'ai deux zones. La zone publique fonctionne bien, mais la zone Friendz est le code sur lequel je travaille actuellement. Je ne suis pas habitué à JOIN ou UNION car je ne les ai pas beaucoup utilisés. – Brad45

+0

J'ai ces tables déjà en place, sauf qu'elles sont appelées membres et amis.Je ne sais pas comment limiter mes résultats et afficher uniquement les statuts soumis par l'utilisateur ou par son ami. – Brad45