IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

2 requêtes pour 1 tableau [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 58
    Points : 23
    Points
    23
    Par défaut 2 requêtes pour 1 tableau
    Bonjour!
    J'ai monté un petit système de chat par lequel j'insère dans ma BDD les champs: ID - FROM - TO - MSG - DATE - RECU

    Tout s'insère bien. Je veux lister tous les usagers qui ont discuté avec $username.
    Là ou $username est dans "FROM":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT * FROM chat WHERE chat.from = '$username' AND chat.to != '$username' GROUP BY chat.to ORDER BY chat.to ASC";
    et là ou $username est dans "TO":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT * FROM chat WHERE chat.from != '$username' AND chat.to = '$username' GROUP BY chat.from ORDER BY chat.from ASC";
    Je peux maintenant très bien lister dans 2 tableaux mais comment faire pour ne faire qu'une requête ou encore lister dans un seul tableau???

    Quel serait le meilleur procédé?

    Merci!

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT DISTINCT user FROM (
    SELECT from as user WHERE to = '$username'
    UNION
    SELECT to as user WHERE from  = '$username'
    )
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 58
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT DISTINCT user FROM (
    SELECT from as user WHERE to = '$username'
    UNION
    SELECT to as user WHERE from  = '$username'
    )
    Ok!

    Et pour remplir mon tableau, je fais toujours une boucle? héhé... (Dsl de ne pas tout saisir tout de suite)

    Et pour l'instant, j'ai une erreur de syntaxe que je ne résous pas.... Alors voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql = "SELECT DISTINCT user FROM (SELECT chat.from AS user WHERE chat.to = '$username' UNION SELECT chat.to AS user WHERE chat.from  = '$username')";
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    while ($boucle = mysql_fetch_array($req))
    	{
        $usager = ($boucle["user"]);
        echo $usager;
    }
    PS: L'erreur est:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE chat.to = 'Johnny' UNION SELECT chat.to AS user WHERE chat.from = 'J' at line 1

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 58
    Points : 23
    Points
    23
    Par défaut
    Ok, j'ai trouvé!
    Voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql = "
    SELECT chat.from user 
    FROM chat 
    WHERE chat.to='$username' 
    UNION SELECT chat.to user 
    FROM chat 
    WHERE chat.from='$username' 
    ORDER BY user ASC";

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. 3 requêtes pour 1 tableau de résultats
    Par fisio dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 15/11/2010, 13h04
  2. Réponses: 2
    Dernier message: 26/09/2008, 22h32
  3. [MySQL] Requête pour récupérer toutes les valeurs d'un tableau
    Par djoumusic dans le forum PHP & Base de données
    Réponses: 40
    Dernier message: 24/08/2008, 22h11
  4. [MySQL] affichage pour pagination depuis un requête dans un tableau
    Par berti dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/05/2008, 10h44
  5. [MySQL] Passer les résultats d'une requête dans un tableau 2D pour un webservice ?
    Par tintin72 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/06/2007, 01h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo