MissOlana Posté 31 Octobre 2013 Posté 31 Octobre 2013 Bonjour à tousJ'ai un autre probleme de jointure et je ne suis pas très forte dans la mise en forme des jointures .Voici un mon probleme:J'ai une table "amis" et j'aimerais afficher mes amis qui ont accepté la demande d'amitié mais aussi les amis qui ont eux accepté mon amitié.Je m'explique avec un tableauLa table "amis"+-----------++-----------+-----| Destinataire | Expediteur |+-----------++-----------+-----| MissOlana | laure || Pierre | MissOlana || Julia | MissOlana || MissOlana | martine |+-----------++-----------+----J'arrive à afficher mes amis avec:SELECT * FROM amis WHERE Destinataire= '$utilisateur' ORDER by time DESCmais je n'arrive pas à joindre en même temps la colonne Expediteur.Le resultat esperé:Mes amis:laurePierreJuliamartine(il n'y a pas mon nom dans la liste)j'imagine une jointure du styleSELECT * FROM amis WHERE Destinataire= '$utilisateur' jointure Expediteur = '$utilisateur'order by time Merci de votre aide car je bloque ;(
Dadou Posté 1 Novembre 2013 Posté 1 Novembre 2013 Ce n'est pas une jointure que tu essayes de faire, c'est un simple critère de recherche select * from amis where Destinataire = $utilisateur or Expediteur = $utilisateur Rien de bien compliqué ou alors tu ne veux que la liste de nom et ce serait plutôt une union : select Expediteur as copain from amis where Destinataire = $utilisateur union ( select Destinataire as copain from amis where Expediteur = $utilisateur)
duplex13 Posté 2 Novembre 2013 Posté 2 Novembre 2013 En fait une union est toujours plus rapide qu'un "Or" dans une requête et personnellement, je ne mets jamais de parenthèse avec Mysql et si on veut faire un Order By dans une union, il faut que cette colonne apparaisse dans le Select : SELECT Expediteur, time FROM amis WHERE Destinataire= '$utilisateur' Union SELECT Destinataire, time FROM amis WHERE Expediteur= '$utilisateur' order by time
MissOlana Posté 4 Novembre 2013 Auteur Posté 4 Novembre 2013 Cela marche ! , merci pour vos lumiéres, effectivement je me suis égaré avec la jointure. Je reviens si j'ai un autre probleme, j'ai bien fait de m'inscrire ici moi
MissOlana Posté 22 Novembre 2013 Auteur Posté 22 Novembre 2013 Bon je relance cette conversation car j'aimerai afficher ses fameux amis si seulement ils s'ont connectés au site . le requete de départ pour afficher mes amis: SELECT Expediteur, time FROM amis WHERE Destinataire= '$utilisateur' Union SELECT Destinataire, time FROM amis WHERE Expediteur= '$utilisateur' order by time je remonte donc mes amis, comment puis-je faire un trie ou une union supplementaire pour ne m'afficher uniquement les amis en ligne dans la table de "membre" La table "membre" +--------------+------------+ | Nom | Enligne | +--------------+------------+ | Pierre | 1 | | Julia | 0 | | MissOlana | 0 | +--------------+------------+ Résultat expéré >>>> Pierre qui est connecté
Dadou Posté 22 Novembre 2013 Posté 22 Novembre 2013 une petite jointure dans les deux requêtes, rien de compliqué. Mais au vu des différentes questions que tu as pu poser ici, j'ai l'impression que tu t'es lancée dans un développement largement hors de ta portée. Tu aurais du a mon avis te lancer dans un projet plus simple.
MissOlana Posté 23 Novembre 2013 Auteur Posté 23 Novembre 2013 Ok, je sors ;( je suis d'accord avec toi je ne sais pas faire une jointure entre deux requêtes, mais justement je suis ici pour cela car mon ami ma dit que l'on pouvais m'aider, pour avancer, pour une entraide, moi j'ai pas fais d'école en programation, je fais juste un petit blog pour moi et mes amis, et je me débrouille avec google et les forums et un script de blog en état de marche que j'ameliore comme je peux, alors oui, je souhaite savoir faire une jointure entre deux requêtes, le projet est minime par rapport à vos sites. Voila si on peux m'aider alors c'est cool
Dadou Posté 23 Novembre 2013 Posté 23 Novembre 2013 Aider oui, tout faire non. Tu dis que tu ne sais pas faire une jointure, mais as tu cherché des tutos dessus ? Il y en a plein qui trainent et qui sont très bien fait, tu as openclassrooms (anciennement site du zero) par exemple : http://fr.openclassrooms.com/informatique/cours/concevez-votre-site-web-avec-php-et-mysql/les-jointures-entre-tables Tout comme toi je n'ai pas fait d'école de programmation, la grande partie de mes connaissances, je les ais apprises dans des livres (sur MySQL il y en a plein aussi) et sur des tutos sur le net. J'ai commencé par des projets simples et j'ai augmenté la difficultés au fur et à mesure que mes compétences augmentaient. Si je liste tes posts : http://www.webmaster-hub.com/topic/54736-probleme-de-select-multiple-et-msql/ http://www.webmaster-hub.com/topic/54687-probleme-de-while-et-sql/ Et celui-ci, ce ne sont que des problématiques de base, en gros il te manque les bases PHP / Mysql pour comprendre ce que tu fais, une bonne lecture du cours complet : http://fr.openclassrooms.com/informatique/cours/concevez-votre-site-web-avec-php-et-mysql te ferait le plus grand bien
yuston Posté 23 Novembre 2013 Posté 23 Novembre 2013 Sinon, la table membre, elle se met à jour comment ? J'entends par là, une personne qui n'est pas plus active sur le site et n'a pas utilisé le bouton "déconnexion", elle sera considérée comme Enligne.
MissOlana Posté 23 Novembre 2013 Auteur Posté 23 Novembre 2013 Alors je vais répondre simplement, à quoi sert un forum d'entraide sur webmaster hub si ont apprend tout correctement sur le site du Zero (openclassrooms) ? et le fameux "tout faire" est valable pour une simple requete SQL ? j'ai pas demandé de me faire le site complet, je demande juste une requete difficile pour moi. Comme tu as vu sur mes posts précédent la communauté ma aidé pour mes soucis de requete.
Dadou Posté 24 Novembre 2013 Posté 24 Novembre 2013 Un forum d’entraide viens en complément d'un apprentissage des bases, et ce que je remarque, c'est que tu ne les as pas, et c'est pour cela que je t’orientais vers un site comme openclassrooms. On a déjà écrit entièrement pour toi plusieurs requêtes, mais si de ton côté, tu ne cherches pas a faire par toi même, ce n'est pas bon non plus.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant