Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème fonction d'agrégats ...

Sujet résolu
    23 novembre 2010 à 10:00:05

    Bonjour à tous,
    c'est la première fois que j'utilise des fonction SQL, et là j'ai besoin d'une fonction d'agrégat ...
    Voilà mon code:
    <?php
    $requete_boites='SELECT COUNT (*) AS nb_b1 FROM stats INNER JOIN trous ON trous.ID_trou = stats.ID_element WHERE ID_util='.$id.' AND boite=1 AND ID_test_parent='.$_POST['reference_test'];
    $boite1=$bdd->query($requete_boites);
    $boite1 =$boite1->fetch();
    echo $boite1['nb_b1'];
    $boite1->closeCursor();
    ?>
    

    Malheureusement, la réponse est:
    Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\scolanew\administration\voir_stats.php on line 16
    J'ai pourtant suivi la bonne procédure ...
    Que faire ?
    Merci d'avance.

    PS
    Je sais que c'est pas sécurisé du tout, mais je le sécuriserai après avoir résolu ça ...
    C'est déjà assez embrouillé comm ça ... :D;)
    • Partager sur Facebook
    • Partager sur Twitter
      23 novembre 2010 à 10:05:37

      Affiche tes erreurs SQL en mettant ceci après ta connexion (dans le try)

      $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
      • Partager sur Facebook
      • Partager sur Twitter
        23 novembre 2010 à 10:07:36

        MErci pour l'astuce .. Voici le résultat ...
        Warning: PDO::query() [pdo.query]: SQLSTATE[42000]: Syntax error or access violation: 1064 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 '*) AS nb_b1 FROM stats INNER JOIN trous ON trous.ID_trou = stats.ID_element WHER' at line 1 in C:\wamp\www\scolanew\administration\voir_stats.php on line 15

        Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\scolanew\administration\voir_stats.php on line 16


        PS j'ai tester ma requête sur phpmyadmin, ça marche pas ...
        C'est clair que ça vien de la requête ...
        EDIT-EDIT
        hep, on dirait que l'on ne peut pas utiliser (*) avec des jointure ...
        Je vien de le voir ur PHPmyAdmin ...
        Il va faloir compter le nb de ligne retournées ...
        • Partager sur Facebook
        • Partager sur Twitter
          23 novembre 2010 à 10:19:12

          Regarde l'EDIT de mon message, j'ai trouver l'erreur ...
          • Partager sur Facebook
          • Partager sur Twitter
            23 novembre 2010 à 10:35:04

            Tu n'est pas obligé de compter le nombre de ligne retournées avec PHP hein, suffit de mettre COUNT(trous.ID_trou) par exemple.
            • Partager sur Facebook
            • Partager sur Twitter
              23 novembre 2010 à 10:50:53

              Ah oui, c'est vrai, y a pas que (*) .. Merci bien
              EDIT OK, ça marche ..
              MErci pour tout
              • Partager sur Facebook
              • Partager sur Twitter
                23 novembre 2010 à 17:20:32

                Il faut toujours utiliser COUNT(*) plutôt que COUNT(col_name) lorsqu'on veut compter toutes les lignes. C'est plus rapide.

                L'erreur provenait bien de l'espace entre COUNT et (*), comme l'a dit Taguan.
                • Partager sur Facebook
                • Partager sur Twitter

                Problème fonction d'agrégats ...

                × 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