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 :

Deux requêtes en une


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Avatar de Gecko
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Décembre 2008
    Messages
    499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Décembre 2008
    Messages : 499
    Par défaut Deux requêtes en une
    Bonjour tout le monde

    J'ai actuellement un problème pour une requête qui génère la vue des forums de mon site.

    Je cherche à générer un affichage qui m'évite d'avoir deux boucles php.

    Cette requête doit afficher les post it et ensuite les messages normaux, quelque soit le numéro de page appelé.

    Voici une des requêtes que j'ai tenté de faire, en vain...
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT * FROM forum_topic WHERE f_topic_priority = '1'
    (
         SELECT * FROM forum_topic WHERE f_topic_priority = '0' ORDER BY f_topic_update_time LIMIT $PremierSujet,$DernierSujet
    )
    ORDER BY f_topic_update_time

    Voici les champs :
    f_topic_priority = enum(0,1), 1 = post it, 0 = normal
    f_topic_update_time = time(), date du dernier message posté dans le sujet

    Merci d'avance pour votre aide, Bloody-wave

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Et comme ça, c'est pas plus simple ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT les_colonnes_necessaires_et_pas_etoile
    FROM forum_topic
    ORDER BY f_topic_priority DESC, f_topic_update_time DESC
    À propos du SELECT * que j'ai remplacé, évite la guerre des étoiles !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre très actif
    Avatar de Gecko
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Décembre 2008
    Messages
    499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Décembre 2008
    Messages : 499
    Par défaut
    Bonjour,

    malheureusement ça ne correspond pas a ce dont j'ai besoin.

    J'ai un système de pagination qui définit le LIMIT de la requête. Je voudrait que les sujet qui ont f_topic_priority = 1 soient affichés sur toutes les pages et ensuite les 20 messages normaux correspondant au numéro de la page

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Alors il faut une UNION entre les deux requêtes.
    Essaie comme ça :
    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
    SELECT tmp.* -- là on peut parce que les colonnes sont déjà définies dans la sous-requête !
    FROM 
    (
        SELECT les_colonnes_necessaires_et_pas_etoile
        FROM forum_topic
        WHERE f_topic_priority = '1'
     
        UNION
     
        SELECT les_colonnes_necessaires_et_pas_etoile
        FROM forum_topic
        WHERE f_topic_priority = '0'
        LIMIT $PremierSujet, $DernierSujet
    ) tmp
    ORDER BY f_topic_priority DESC, f_topic_update_time DESC
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre très actif
    Avatar de Gecko
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Décembre 2008
    Messages
    499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Décembre 2008
    Messages : 499
    Par défaut
    Merci pour ton aide, malheureusement ça ne fonctionne toujours pas comme il faut.

    Les sujets ayant f_topic_priority =1 sont pris en compte dans le LIMIT

    Je commence a me dire que je vais devoir faire deux boucles pour obtenir l'affichage souhaité

Discussions similaires

  1. Deux requêtes en une
    Par did36 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 02/02/2010, 19h29
  2. Deux requêtes en une seule?
    Par pcsystemd dans le forum Requêtes
    Réponses: 5
    Dernier message: 09/07/2009, 17h28
  3. [MySQL] Deux requêtes dans une boucle
    Par stefanelle dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 25/02/2009, 11h41
  4. Deux requêtes en une
    Par dam28800 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/01/2009, 12h56
  5. Somme de deux requête en une en sql/access
    Par thepunky89 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/09/2007, 15h31

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