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 :

ERROR:Mixing of GROUP columns [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut ERROR:Mixing of GROUP columns
    Bonjour tout le monde,

    Dans la continuité de mes news et commentaires associés, j'aimerais afficher le nombre de commentaires par news d'où le code ci -dessous :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $search = mysql_query("SELECT news.id,news.nom,news.titre,news.spec,news.photoarticle,news.visu,news.date,count( * ) AS nombre FROM news JOIN commentaire WHERE news.id = commentaire.sid ORDER BY news.date") or die ("ERROR:" . mysql_error());
    		$row = mysql_query($search);
                    $nombre = $row['nombre'];
     
    while($row = mysql_fetch_assoc($search)) { 
     
    echo'<a href="commentaire.php?sid=$row[0]">commentaires '.$row['nombre'].'</a>';
     
    }
    Mais le message d'erreur apparaît :

    ERROR:Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause
    ?

  2. #2
    Membre chevronné
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Par défaut
    Tu dois ajouter
    juste avant le ORDER BY

    @+
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  3. #3
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    Merci genova, cependant j'ai encore quelques soucis avec ce code.

    En se reférant à mon post précédent conernant la structure de mon code entre les news et les commentaires associés ici, je souhaiterais avoir le nombre de commentaires (sur la page resultats.php) avant d'accéder à la page [commentaire.php] de cette façon : commentaires (5) par exemple.

    Pour se faire voici mon code :

    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
    28
    29
    30
    31
     
    $search = mysql_query("SELECT news.id,news.nom,news.titre,news.spec,news.photoarticle,news.visu,news.date,count( * ) AS nombre FROM news JOIN commentaire WHERE news.id = commentaire.sid AND news.hid='$hid' AND news.visu='oui' GROUP BY news.id ORDER BY news.date") or die ("ERROR:" . mysql_error());
    		$num = mysql_num_rows($search);
            $nombre = $row['nombre'];
     
     
    if ($num == 0) {
     
     
     
     
     
    			echo "<td>Il y a <b>$num</b> news associées à la catégorie : </b></td>";
     
    			echo "<td class=\"moyen\">Pas de news!</td>";
     
     
    		} else {
     
     
     
    			echo "<td><font color=white>Il y a <b>$num</b> news associées à la catégorie :</font></b></td>";
     
    			while ($row = mysql_fetch_row($search)) {
     
     
     
     
    echo '<a href="commentaire.php?sid='.$row[0].'">commentaires ('.$row['nombre'].')</a>';			
     
    }
    Actuellement, rien n'apparaît à la place du ('.$row['nombre'].')

    PS : la récupération des données se fait sur deux tables (news et commentaire) où news.id=commentaire.sid

    merci

  4. #4
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    essaye ceci pour voir ce que contient ta variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while ($row = mysql_fetch_row($search)) {
    var_dump($row);
    }

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Février 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 21
    Par défaut
    D'abord, un "$nombre = $row['nombre'];" qui s'est perdu au milieu du code (après la query)

    Ensuite, il est normal que tu n'ai rien dans $row['nombre'], tu utilise mysql_fetch_row(), qui renvoit un tableau indexé, mais pas associatif.

    Autrement dis, il place les éléments dans le tableau de 0 à x ($row[0], $row[1], ... $row[x]).
    Bien que tu ai utilisé "AS nombre" dans la query sql, php ne l'utilisera pas avec un fetch_row, et dans le cas présent pour y acceder tu doit faire:
    Comme c'est quand même moyen pratique, tu veux surement pouvoir utiliser le texte "nombre" pour y acceder, alors remplace mysql_fetch_row() par mysql_fetch_array() qui va créer un tableau associatif, et te permettre de faire un $row['nombre']

    Je te conseille fortement de regarder l'aide de ces deux fonctions ici et , et de lire les exemples.

  6. #6
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    Merci lepidosteus ! Effectivement, maintenant ça fonctionne

    Je m'en vais de suite regarder l'aide de ces fonctions...

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

Discussions similaires

  1. Fatal Error : Duplicate definition of column 'id' on entity
    Par Esteban17 dans le forum Doctrine2
    Réponses: 2
    Dernier message: 22/03/2012, 13h56
  2. Erreur Mixing of GROUP columns dans la requête
    Par peofofo dans le forum Requêtes
    Réponses: 4
    Dernier message: 15/03/2012, 11h33
  3. Réponses: 3
    Dernier message: 07/12/2011, 13h48
  4. Erreur : Mixing of GROUP columns
    Par lmabire dans le forum Requêtes
    Réponses: 4
    Dernier message: 07/11/2011, 13h37
  5. Réponses: 0
    Dernier message: 08/12/2009, 12h39

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