Récupérer la valeur d'un COUNT(*) dans une variable php

Résolu/Fermé
Dobby85 Messages postés 16 Date d'inscription jeudi 31 janvier 2013 Statut Membre Dernière intervention 16 juin 2014 - 6 févr. 2013 à 15:34
Dobby85 Messages postés 16 Date d'inscription jeudi 31 janvier 2013 Statut Membre Dernière intervention 16 juin 2014 - 8 févr. 2013 à 07:17
Bonjour à tous,

Donc voici mon problème, je cherche à récupérer le nombre de ligne dans ma base de donnée avec un count(*). J'ai cherché sur plusieurs site mais aucun n'a répondu à mon problème...

Je sais qu'il faut aliaser le count :

SELECT COUNT(*) AS total FROM forum

Mais après ça, je ne sais pas comment récupérer la valeur et l'afficher sur le site.

Si quelqu'un sait comment récupérer la valeur d'un count(*) dans une variable php, je le remerci de m'en faire part.

Dobby85 :)

8 réponses

Panoramix. Messages postés 2655 Date d'inscription mardi 13 avril 2010 Statut Membre Dernière intervention 28 décembre 2016 1 085
Modifié par Panoramix. le 6/02/2013 à 22:35
Salut,

Tu peux procéder comme ça :
<?php 
     // Génération de la requête SQL 
     $SELECT_COUNT = "SELECT COUNT(*) AS total FROM forum"; 
     $result = MYSQL_QUERY($SELECT_COUNT) OR DIE(); 
     $count = MYSQL_FETCH_ASSOC($result); 
     // Affichage du résultat 
     ECHO 'Le total est '.$count['total']; 
?> 


Voilà !
0
Bonsoir

Une petite faute d'inattention...
$result = MYSQL_QUERY($SELECT_COUNT) OR DIE();
0
Panoramix. Messages postés 2655 Date d'inscription mardi 13 avril 2010 Statut Membre Dernière intervention 28 décembre 2016 1 085
6 févr. 2013 à 22:35
C'est corrigé, merci :)
0
Dobby85 Messages postés 16 Date d'inscription jeudi 31 janvier 2013 Statut Membre Dernière intervention 16 juin 2014
7 févr. 2013 à 07:40
J'ai copier/coller ton code en faisant attention de mettre les bonnes variables mais je n'ai rien qui s'affiche, il ne lit même pas le echo... En fait, il rentre dans le DIE à la ligne :

$result = MYSQL_QUERY($SELECT_COUNT) OR DIE();

Donc du coup il ne lit pas la suite...

Avez vous une solution ?

Dobby85 :)
0
Utilisateur anonyme
7 févr. 2013 à 08:26
À mon avis, il te manque le code pour te connecter à la base de données.
Pour vérifier :
$result = MYSQL_QUERY($SELECT_COUNT) OR DIE(mysql_error()); 


Si c'est bien ça le problème, je te conseille de suivre des tutoriels (par exemple sur le site du zéro) pour t'initier à l'utilisation de mysql avec PHP, car tu as besoin d'une formation complète, pas d'un simple coup de pouce.
0
Dobby85 Messages postés 16 Date d'inscription jeudi 31 janvier 2013 Statut Membre Dernière intervention 16 juin 2014
Modifié par Dobby85 le 7/02/2013 à 18:13
J'ai déjà lu tout le livre du site du zéro sur php et mysql... Et j'arrive à me connecter à la base de donnée, mais je veux juste récupérer une valeur numérique dans une variable...

Et le :
OR DIE (mysql_error());
Ne m'affiche rien, je sais qu'il rentre dedans mais il ne m'affiche rien... :(
J'ai vu sur d'autres sites qu'il fallait alliaser le count(*) :
SELECT COUNT(*) AS total FROM forum
et que le résultat était dans total mais je n'arrive pas à récupérer ce résultat...

Merci d'avance

Dobby85:)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
7 févr. 2013 à 20:31
Si le OR DIE (mysql_error()); ne t'affiche rien et le echo qui suit non plus, alors c'est que cette partie du code n'est pas exécutée.
je sais qu'il rentre dedans mais il ne m'affiche rien..
Comment sais-tu qu'il rentre dedans ? Je veux dire : que fais-tu pour t'en assurer ? Car afficher un résultat d'une requête, COUNT() ou pas COUNT(), c'est quand même du B. A. BA

Tu peux nous donner ton code (sans mots de passe évidemment) pour nous permettre de comprendre ?
0
Dobby85 Messages postés 16 Date d'inscription jeudi 31 janvier 2013 Statut Membre Dernière intervention 16 juin 2014
7 févr. 2013 à 20:45
Je sais qu'il rentre dedans car à la place de mettre mysql_error() j'ai écris un mot et il l'a affiché par la suite. C'est justement ce qui m'énerve, je me doute que c'est super simple mais je ne trouve pas !! :(

Voici mon code :

<?php
try
{
$bdd = new PDO('mysql:host=sql.franceserv.fr;dbname=mabase', 'identifiant', 'mot_de_passe');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}

// Génération de la requête SQL
$SELECT_COUNT = $bdd->query("SELECT COUNT(*) AS total FROM forum");
$result = MYSQL_QUERY($SELECT_COUNT) OR DIE(mysql_error());
$count = MYSQL_FETCH_ASSOC($result);
// Affichage du résultat
echo 'Le total est ' . $count['total'] .'';

Et ce code ne m'affiche rien, il rentre dans le mysql_error()...

Merci pour vos réponses !

Dobby85:)
0
Tu as certainement mal lu le livre du site du zéro sur php et mysql.
Ton code mélange deux manières d'accéder à une base de données : PDO et les fonctions "classiques". Si tu as recopié le code de Panoramix sans te rendre compte du problème, c'est que tu n'as jamais dû écrire la moindre ligne de mysql par toi--même. Ce n'est pas un reproche, il faut bien commencer...
Voici la version PDO que je te conseille d'utiliser. Ta connexion est en PDO, ça tombe bien.
<?php   
     // Génération de la requête SQL   
     $SELECT_COUNT = "SELECT COUNT(*) AS total FROM forum";   
     $result = $bdd->query($SELECT_COUNT)  
     $count = $result->fetch(PDO::FETCH_ASSOC);   
     // Affichage du résultat   
     ECHO 'Le total est '.$count['total'];   
?> 
0
Dobby85 Messages postés 16 Date d'inscription jeudi 31 janvier 2013 Statut Membre Dernière intervention 16 juin 2014
8 févr. 2013 à 07:17
Merci beaucoup, en effet, c'est une chose que je n'ai pas compris, les différentes manières de se connecter... Et je ne comprends toujours pas, mais bon ça marche nickel et je te remercie grandement parce que ça faisait longtemps que je cherchais !!! :)

Merci beaucoup !

Dobby85:)
0