Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème avec COUNT de mySQL

    13 février 2020 à 18:21:58

    Bonjour, 

    déjà voici mon code 

    $series = $bdd->query('SELECT * FROM series');
        while($serie = $series->fetch())
        {
          $idSerie = $serie['id'];
          $countTome = $bdd->query('SELECT COUNT(id) FROM tome WHERE serieID = {$idSerie}');
          echo $serie['name'];
          echo $countTome->fetch();

    J'essaye de compter le nombre de tome qu'il y a dans une série de livre. Pour ça j'ai une table tome qui contient l'id de la série lié. 

    mais quand je fais le fetch j'ai une erreur comme quoi je ne peux pas appeler fetch() sur un boolean, or c'est sensé être un int.

    Si vous pouvez m'aider ce serait cool, je bloque !

    • Partager sur Facebook
    • Partager sur Twitter
      13 février 2020 à 18:24:18

      Normal, la requête plante car {$idSerie} est littéral (chaîne délimitée par des ' oblige). Je recommande la lecture de la doc au sujet des chaînes de caractères.

      > or c'est sensé être un int

      Non, c'est sensé être un PDOStatement. Là tu as un booléen, FALSE, car conformément à la doc de PDO::query, elle renvoie FALSE si la requête foire.

      Au passage, au lieu de chercher les erreurs SQL, pourquoi tu ne les actives pas ? Ce n'est pas comme si on se tuait à le rappeler tous les 3 sujets ici-même ...

      -
      Edité par julp 13 février 2020 à 18:26:47

      • Partager sur Facebook
      • Partager sur Twitter

      julp.fr ~ Les règles sur OC ~ je ne fais pas d'effort pour ceux qui n'en font pas

        13 février 2020 à 19:02:39

        ok, je pensais justement que les scop incluait la valeur de la variable dans la chaine, mybad. 

        désolé, mais je ne check pas tous les sujets, je vais check ça, merci ;)

        • Partager sur Facebook
        • Partager sur Twitter
          13 février 2020 à 20:28:24

          Salut,

          Tu peux obtenir ce que tu veux en une requête avec une jointure et un GROUP BY

          • Partager sur Facebook
          • Partager sur Twitter
          le bienfait n'est jamais perdu
            13 février 2020 à 20:47:14

            WillyKouassi a écrit:

            Salut,

            Tu peux obtenir ce que tu veux en une requête avec une jointure et un GROUP BY


            En effet, elle est horrible là, tu vas tuer ton serveur
            • Partager sur Facebook
            • Partager sur Twitter
              14 février 2020 à 14:34:05

              Pas de requête dans une boucle, c'est la base

              En plus dans ton cas, une jointure entre 2 table sera plus efficace => va lire les cours SQL sur les jointure et la syntaxe

              • Partager sur Facebook
              • Partager sur Twitter

              problème avec COUNT de mySQL

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              • Editeur
              • Markdown