Rechercher : dans
Par :

PHP merger 2 resultats de requetes SELECT

Dernière réponse le 3 jui 2009 à 17:10:09 audrey, le 3 jui 2009 à 15:27:55 
 Signaler ce message aux modérateurs

Bonjour,
sur mon site les internautes peuvent envoyer des messages. J'aimerais sur une page membre afficher tous les "interlocuteurs" du membre.
interlocuteur : personne qui vous a envoyé un message ou à qui vous avez envoyé un message
Dans ma tables "messages", il y a une colonne expediteur et une colonne destinataire :

$sqlinterlocuteurs1 = "SELECT destinataire FROM messages WHERE expediteur = '$pseudo'";
Là j'extrais tous ceux à qui j'ai envoyé un message.

$sqlinterlocuteurs2 = "SELECT expediteur FROM messages WHERE destinataire = '$pseudo'";
Là j'extrais tous ceux qui m'ont envoyé un message.

Comment assembler ces 2 requêtes SELECT (dans un tableau par exemple) pour ensuite dédoublonner le résultat ?

Exemple : j'ai pu envoyer un message à SARAH qui elle aussi m'a envoyé plusieurs messages.
Dans ma liste d'interlocuteur, j'aimerais qu'elle n'apparaisse qu'une seule fois.

Y aurait il une ame charitable pour m'aider svp ? Je lui en serais éternellement reconnaissante :)
merci d'avance

Configuration: Windows XP
Safari 530.5

Meilleures réponses pour « PHP merger 2 resultats de requetes SELECT » dans :

1

francis, le 3 jui 2009 à 15:34:18

Salut,
A mon avis tu ferai mieu de gérer les résultats de ces 2 requetes au lieu d'en faire une seule. D'ailleur je doute que conceptionnalement parlant, ce soit faisable d'en faire une seule....

Répondre à francis

2

audrey, le 3 jui 2009 à 15:37:19

Merci pour ta réponse francis. Mais du coup je ne sais pas par quel bout le prendre. Comment arriver à un résultat dédoublonné ?

Répondre à audrey

3

francis, le 3 jui 2009 à 15:41:28

Tu peux pas gérer les résultats via la programmation ?

Répondre à francis

4

audrey, le 3 jui 2009 à 15:43:14

Comment ? Peut on par exemple définir les résultats d'une REQUETE1 dans un ARRAY et ajouter les résultats d'une REQUETE2 dans ce même ARRAY, à la suite ?

Répondre à audrey

5

francis, le 3 jui 2009 à 15:58:28

Ben par exemple, je sais pas ce que tu veux en faire mais bon en php, tout est possible sans se prendre la tete donc... ta juste a te trouver un façon "pratique"

Répondre à francis

6

audrey, le 3 jui 2009 à 15:59:29

Oui mais COMMENT ? Quel est le code ?

Répondre à audrey

9

Darkito, le 3 jui 2009 à 16:12:21
  • +1

Bonjour,

il est possible de faire ce que tu veux directement en SQL via une requête du type :


SELECT DISTINCT
CASE 
    WHEN expediteur = '$pseudo' THEN destinataire
    WHEN destinataire = '$pseudo' THEN expediteur
END as interlocuteur
FROM messages 
WHERE expediteur = '$pseudo' OR destinataire = '$pseudo'

Tøƒ

Répondre à Darkito

11

 audrey, le 3 jui 2009 à 16:26:24

Je viens de le tester en SQL, ce code marche parfaitement. Merci infiniment Darkito.

Francis : il faut bien apprendre un jour...

Répondre à audrey
Collection CommentÇaMarche.net