Page 1 sur 1

Comment afficher le résultat de COUNT(*) en PHP

Posté : 23 juil. 2005, 15:47
par caledonien
Bonjour,

J'aimerais pouvoir afficher la résultat complet de cette requete :

Code : Tout sélectionner

SELECT author, COUNT(*) FROM table group by author
Mais je ne parvient pas a faire apparaitre ca en php.

Afficher dans un tableau via une boucle ca me pose pas de problème, mais là le pb c'est quil reffuse ce genre de ligne :

Code : Tout sélectionner

.... echo "<td width=\"10%\" align=\"center\" bgcolor=\"#91A8F9\">".$tableau["COUNT(*)"]."</td> \n"; echo "<td width=\"100%\" bgcolor=\"#91A8F9\">".$tableau["content"]."</td> \n" ..
Est ce que vous auriez une solution ?

Merci beaucou

Posté : 23 juil. 2005, 15:54
par ouckileou
pour identifier et utiliser facilement des résultats calculés, comme avec COUNt(), tu peux aliaser ce résultat
SELECT author, COUNT(*) AS total FROM  table group by author
et ensuite, tu peux l'afficher en utilisant "total" :
$tableau["total"]

Posté : 23 juil. 2005, 16:33
par caledonien
Merci de ta réponse :)

Quand je fais :

Code : Tout sélectionner

$sql= "SELECT author, COUNT(*) AS total FROM phpwebgallery_comments group by author"; $query = mysql_query($sql); $tableau["total"]; echo "$tableau['total']";
Il affiche une erreure. Bone a vrais dire c'était prévisible.

J'ai aussi testé

Code : Tout sélectionner

.... echo "$tableau->total"; ....
Mais sans plus de résultat.

Peux tu m'aider ?

Merci

Posté : 23 juil. 2005, 16:38
par ouckileou
Il affiche une erreure.
laquelle :?: :!:

tu crois pas que ça aiderait de la connaitre ? :)
echo "$tableau->total";
ça c'est si $tableau était une instance de classe et que tu appelais la méthode "total" : rien à voir

Posté : 23 juil. 2005, 18:47
par caledonien
C'esr vrais ca aide :)

1er essai :
<?
include("connect.php");
$sql= "SELECT author, COUNT(*) AS total FROM  phpwebgallery_comments group by author";
$query = mysql_query($sql);
$tableau["total"];
echo "$tableau["total"]";
?>
J'ai ca comme Warning: :
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in e:\easyphp1-8\www\gstats\essai.php on line 6
Avec des ' ' a la place de " ", ca donne le meme résultat

j'ai testé ca :
<?
include("connect.php");
$sql= "SELECT author, COUNT(*) AS total FROM  phpwebgallery_comments group by author";
$query = mysql_query($sql);
$tableau["total"];
echo "$tableau";
// Tableau utilisateur
// début du tableau ( hors boucle )
echo "<table width=\"100%\" border=\"2\" align=\"center\" cellpadding=\"1\" cellspacing=\"2\">";
// début de la boucle
while($tableau['total'] = mysql_fetch_array($tableau['total'])) {

	echo "<tr> \n";
	echo "<tr> \n";
	echo "<td width=\"10%\"bgcolor=\"#91A8F9\">".$tableau['total']."</td> \n";
		echo "<td width=\"10%\"bgcolor=\"#91A8F9\">".$tableau['author']."</td> \n";

}
// fin du tableau html ( hors boucle )
echo "</table> \n";
?>
Mais sans plus de résultat, là deux Warning:


Notice: Undefined variable: tableau in e:\easyphp1-8\www\gstats\essai.php on line 5

Notice: Undefined variable: tableau in e:\easyphp1-8\www\gstats\essai.php on line 6

Notice: Undefined variable: tableau in e:\easyphp1-8\www\gstats\essai.php on line 11

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in e:\easyphp1-8\www\gstats\essai.php on line 11
Pourtant quand MySql l'execute y a aucun problème.

Posté : 23 juil. 2005, 18:52
par Cyrano
Modération : caledonien, merci d'utiliser les boutons appropriés : [php] pour du PHP, [quote] pour des citations, [code] pour du code autre.

J'ai édité et corrigé moi-même, merci d'y penser la prochaine fois.

Posté : 23 juil. 2005, 18:55
par Cyrano
Et pour la correction: premier code, tu as mis:
echo "$tableau["total"]"; 
Au lieu de
echo $tableau["total"]; 
Second code, ajoute donc une ligne comme ceci:
$query = mysql_query($sql);
$tableau = array();
$tableau["total"]; 

Posté : 23 juil. 2005, 18:56
par ouckileou
aucun problème quand MySQL l'exécute : normal, ce sont des erreurs PHP, ta requête SQL est bonne

le premier warning vient d'ici :
echo "$tableau["total"]";
pas besoin de guillemets autour si tu n'affiches qu'une variable, ici en plus ils interfèrent avec les guillemets autour de l'index "total", d'où une erreur
echo $tableau["total"];
Notice: Undefined variable: tableau in e:\easyphp1-8\www\gstats\essai.php on line 5

Notice: Undefined variable: tableau in e:\easyphp1-8\www\gstats\essai.php on line 6

Notice: Undefined variable: tableau in e:\easyphp1-8\www\gstats\essai.php on line 11
=> la variable $tableau n'existe pas, tu l'affiches ici
$tableau["total"];
mais tu ne mets rien dedans
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in e:\easyphp1-8\www\gstats\essai.php on line 11
cette erreur découle de la précédente

mais je ne comprend pas bien cette ligne
while($tableau['total'] = mysql_fetch_array($tableau['total'])) {
elle ne te semble pas un peu bizarre ?

je ne sais pas si tu as bien saisi ce qu'on a fait avec le "AS total"
on a juste donné un nom plus pratique (total) au résultat de COUNT(*)

Posté : 23 juil. 2005, 19:05
par caledonien
hey :)

Dsl pour les CODE.

Merci de vos réponses,

Actuellement y a ca :
<?
include("connect.php");
$sql= "SELECT author, COUNT(*) AS total FROM  phpwebgallery_comments group by author";
$query = mysql_query($sql);
$tableau = array();
$tableau['total'];
echo $tableau["total"];
?>
Mais :

Code : Tout sélectionner

Notice: Undefined index: total in e:\easyphp1-8\www\gstats\essai.php on line 6 Notice: Undefined index: total in e:\easyphp1-8\www\gstats\essai.php on line 7
Il ne trouve pas index.

Pourtant c'est bien résulatat de mysql donne bien total.

Désolé, je m'y connais trop peut.

:)

Posté : 23 juil. 2005, 19:13
par Cyrano
Voilà, maintenant, il manque encore quelque chose. En fouillant un peu dans les tutos, tu aurais trouvé tout seul:
Essaye donc ça
$query = mysql_query($sql);
while($tableau = mysql_fetch_array($query)
{
    echo $tableau["total"];
}

Posté : 23 juil. 2005, 19:26
par caledonien
Merci beaucoup de votre aide hehe :)

Si vous passez un de ces quatres, en Nouvelle Calédonie :) passer j'vous paye une bonne bière :)

La solution, ca peut toujours servir a quelqu'un
<?
include("connect.php");
$sql= "SELECT author, COUNT(*) AS total FROM  phpwebgallery_comments group by author";
$query = mysql_query($sql) or die;
// début du tableau ( hors boucle )
echo "<table width=\"100%\" border=\"2\" align=\"center\" cellpadding=\"1\" cellspacing=\"2\">";
// début de la boucle
while($tableau = mysql_fetch_array($query)){

	echo "<tr> \n";
	echo "<tr> \n";
	echo "<td width=\"10%\"bgcolor=\"#91A8F9\">".$tableau["author"]."</td> \n";
	echo "<td width=\"10%\"bgcolor=\"#91A8F9\">".$tableau["total"]."</td> \n";

}
// fin du tableau html ( hors boucle )
echo "</table> \n";
?>
Ca fonctionne nickelous :)

A Bientot :)

Posté : 23 juil. 2005, 19:36
par rami
un p'tit résolu pour fête ça? ;)