Problème avec les fonctions

Par Ekim Kael, il y a 10 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.

j'ai créé une fonction me permettant de recuperer le total de chaque id de chaque table en base de données

function inTable($table){ // fonction qui recupère la somme des ID des tables de la BD et les affiche global $db; $q = $db->query("SELECT COUNT(id) FROM $table"); return $req = $q->fetch(); }

je voudrais que pour chaque table trouvée ça fasse ceci :

<?php require 'partials/header.php'; require 'functions/main.func.php'; $tables = [ "utilisateurs"=>"users", "histoires"=>"stories", "commentaires"=>"comments", "visiteurs"=>"visites" ]; ?> <div class="row"> <?php foreach ($tables as $tbl_name => $table) { ?> <div class="col-lg-3"> <div class="panel panel-default"> <div class="panel-heading">Nombre <?= $tbl_name ?></div> <?php $nbrInTable = inTable($table); ?> <div class="panel-body lead"> <?php $nbrInTable[0] ?> </div> </div> </div> <?php } ?> </div>

mais des 4 div à afficher normalement j'en ai que 3 et elles sont vides sans les infos que j'ai demandé et à la troisieme j'ai cette erreur ci

Fatal error: Call to a member function fetch() on boolean in C:\AppServ\www\dashboard\functions\main.func.php on line 14

4 réponses

byflo, il y a 10 ans

Salut,
Pour tes div vides, il ne manquerait pas un echo ici : <?php $nbrInTable[0] ?>
Pour l'erreur, es-tu sûr du nom de tes tables ? On dirait une erreur sur un des requêtes, testes les directement en mySQL pour voir si il n'y a pas un problème dessus.

Ekim Kael, il y a 10 ans

ah!il y'avait une erreur sur la table comments c'était comments_id au lieu de "id" mais encore là aucun affichage

Lartak, il y a 10 ans

Bonjour.

non non tout est exact mais ça marche toujours pas

À part si tu n'as pas recopié ton code ici comme tu l'as créé, ce que tu dis est faux car la valeur de $nbrInTable[0] ne peut pas s'afficher étant donné que la variable est entre de simples balises PHP.

Ekim Kael, il y a 10 ans

Merci Lartak, j'ai envie de me mettre un smak au visage là..rrrhhhh merci encore