Partage
  • Partager sur Facebook
  • Partager sur Twitter

[MySQL] Erreur lors de la recherche

Sujet résolu
    20 août 2006 à 13:02:53

    Bonjour !

    C'est encore moi ^^

    J'ai en fait un problème au niveau de mon nouveau système de recherche !

    Lorsque je veux rechercher les sujets ayant pas de réponses, ca bug avec ma variable déclarée plus haut dans le select

    Voici ma requête :

    -- Début de la recherche avancée dans le forum
    SELECT
    s.titre AS titre,
    s.sous_titre AS sous_titre,
    s.id AS id,
    s.lu AS lu,
    s.poste AS poste,
    s.dernier_msg_pseudo AS dernier_msg_pseudo,
    s.dernier_msg_date AS dernier_msg_date,
    c.nom AS nom_cat,
    c.id AS id_cat,
    COUNT(m.id) AS nbr_reponses, -- VARIABLE DECLAREE ICI
    s.annonce AS annonce,
    s.ferme AS ferme,
    COUNT(*) AS nbr_results
    FROM
    ns_sujets_forum s
    LEFT JOIN
    ns_messages_forum m
    ON m.sujet = s.id
    LEFT JOIN
    ns_parties_forum c
    ON s.forum = c.id
    WHERE
    (s.titre LIKE '%e%'
    OR s.sous_titre LIKE '%e%'
    OR s.contenu LIKE '%e%'
    OR m.contenu LIKE '%e%')
    AND nbr_reponses = 0 -- ET CA PIQUE UNE CRISE ICI


    GROUP BY
    c.id,
    s.id
    ORDER BY
    c.id ASC,
    s.annonce DESC,
    s.dernier_msg_date DESC


    et voici l'erreur :

    Unknown column 'nbr_reponses' in 'where clause'


    J'aimerais donc savoir comment faire pour sélectionner es sujets ayant uniquement 0 réponse

    Merci d'avance ;)

    ++

    PS : J'ai aussi essayé ca :
    WHERE COUNT(m.id) = 0
    -- Ou même
    WHERE COUNT(m.id) = '0'

    mais rien y fait ! :o
    • Partager sur Facebook
    • Partager sur Twitter
      20 août 2006 à 13:40:15

      Essaie de cette façon :

      SELECT
      s.titre,
      s.sous_titre,
      s.id,
      s.lu,
      s.poste,
      s.dernier_msg_pseudo,
      s.dernier_msg_date,
      c.nom AS nom_cat,
      c.id AS id_cat,
      s.annonce,
      s.ferme,
      COUNT(*) AS nbr_results
      FROM
      ns_sujets_forum s
      LEFT JOIN
      ns_messages_forum m
      ON m.sujet = s.id
      LEFT JOIN
      ns_parties_forum c
      ON s.forum = c.id
      WHERE
      (s.titre LIKE '%e%'
      OR s.sous_titre LIKE '%e%'
      OR s.contenu LIKE '%e%'
      OR m.contenu LIKE '%e%')
      AND m.sujet IS NULL
      GROUP BY c.id, s.id
      ORDER BY c.id ASC, s.annonce DESC, s.dernier_msg_date DESC
      • Partager sur Facebook
      • Partager sur Twitter
        20 août 2006 à 14:05:47

        merci beaucoup ca marche à présent !
        Secret (cliquez pour afficher)
        démo du script :) : http://www.emakers.info/rechercher.html?fullsearch

        je met en résolu ;)
        • Partager sur Facebook
        • Partager sur Twitter
          20 août 2006 à 14:14:45

          Tu devrais rajouter une condition dans le WHERE pour exclure les forums privés ;)

          Car si je fais une recherche sur php, je tombe sur Coin admins
          • Partager sur Facebook
          • Partager sur Twitter

          [MySQL] Erreur lors de la recherche

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown