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

Requêtes MySQL Discussion :

[PHP/MySQL] Problème de requête - Regroupement et Order By


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 15
    Points : 9
    Points
    9
    Par défaut [PHP/MySQL] Problème de requête - Regroupement et Order By
    Bonjour,

    J'ai un problème pour une réquete, en gros c'est pour le développement d'un Forum.

    Voici mes 3 tables concernés:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    CREATE TABLE `topic` (
      `idTopic` int(11) NOT NULL auto_increment,
      `TitreTopic` text NOT NULL,
      `idForum` int(11) NOT NULL default '0',
      PRIMARY KEY  (`idTopic`)
    )
     
    CREATE TABLE `post` (
      `idPost` int(11) NOT NULL auto_increment,
      `MessagePost` text NOT NULL,
      `DatePost` datetime NOT NULL default '0000-00-00 00:00:00',
      `idUser` int(11) NOT NULL default '0',
      `idTopic` int(11) NOT NULL default '0',
      PRIMARY KEY  (`idPost`)
    )
     
    CREATE TABLE `user` (
      `idUser` int(11) NOT NULL auto_increment,
      `LoginUser` varchar(15) NOT NULL default '',
      `PasswordUser` varchar(32) NOT NULL default '',
      `DateNaissanceUser` date NOT NULL default '0000-00-00',
      `TypeUser` varchar(15) NOT NULL default '',
      `DateInscriptionUser` date NOT NULL default '0000-00-00',
      `PaysUser` varchar(30) NOT NULL default '',
      PRIMARY KEY  (`idUser`)
    )
    Et voici ma requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $query_topic = 'Select Topic.idTopic, TitreTopic, DatePost, LoginUser';
    $query_topic .= ' From Topic, Post, User';
    $query_topic .= ' Where Topic.idTopic = Post.idTopic';
    $query_topic .= ' And User.idUser = Post.idUser';
    $query_topic .= ' And idForum =' . $_GET['id'];
    $query_topic .= ' Group by Topic.idTopic, TitreTopic';
    $query_topic .= ' Order by DatePost DESC';
    Ce que je voudrais c'est afficher la liste des Topic d'un Forum, avec le Pseudo et la date de derniers post dans le topic concerné.

    Ma requete me liste bien les topic, mais affiche seulement le pseudo et l'heure du premier post.

    Résultat:
    TitreTopic ----------------- LoginUser -------- DatePost ------------- get_nb_post()
    -------------------------------------------------------------------------------------------
    Probléme HTML/CSS --------- TwiSter --------- 2006-05-12 21:05:05 ----- 1

    Outil Développement PHP ? --- TwiSter ---------2006-05-12 21:02:45 ----- 3
    Le resultat n'est dont pas correct, vu que le dernier posteur n'est pas 'TwiSter' pour les 2 topics

    Si quelqu'un pourrait m'aider pour ça, ça serait bien ^^
    Merci d'avance !

  2. #2
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Salut,

    Au lieu de faire GROUP BY, tu pourrais trier 1 par Topic.idTopic et 2 par DatePost DESC. Ca reviendrait à ce que tu voudrais faire?

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 331
    Points : 4 315
    Points
    4 315
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query_topic .= ' And idForum =\'' . $_GET['id'] . '\'';
    Tu as oublié de quoter la valeur

  4. #4
    Futur Membre du Club
    Inscrit en
    Février 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Thx smarties.

    En fait si j'enleve le Group By bin ça liste plusieurs fois le même topic !

    Je veux qu'il liste les topic en une seul fois, et qu'il me mets le nom du dernier posteur. Or ici j'obtiens le nom du premier posteur !

    Vous pensez qu'avez une sous requete ça marcherait ? Mais je sais pas du tout comment faire la sous requete

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Deja moi je crérais des clés étrangeres dans ta base:
    Table.idtopic référençant Topic.idtopic
    Table.iduser référençant Table.iduser

  6. #6
    Futur Membre du Club
    Inscrit en
    Février 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Je les ai fait, quand j'ai exporté la structure ça a rien fait a ce niveau, bizarre.

    En tout je suis toujours coincé sur mon probleme =(

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    si tu as exporté, il faut que sous ta base mysql tu utilise le moteur InnoDB

    Ton group by fait le que sur Topic.idtopic..lol on c jamais

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

Discussions similaires

  1. [MySQL] Optimisation de scripts PHP/MySQL
    Par DgG dans le forum PHP & Base de données
    Réponses: 368
    Dernier message: 20/11/2013, 18h59
  2. [php][mysql]Enlever message d'erreur
    Par Destampy dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 31/05/2005, 10h19
  3. [MySQL] [Script]Optimisation de scripts Php/MySQL (2)
    Par copy dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/08/2004, 08h33
  4. [php / mysql] pb if ( mysql_query() )
    Par dkmatt dans le forum Requêtes
    Réponses: 5
    Dernier message: 12/01/2004, 20h07

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