Lister et compter les valeurs d'un champ

Eléphanteau du PHP | 22 Messages

18 nov. 2008, 20:16

Bonjour,

Je voudrais pouvoir lister les parties d'un champs, et les compter.

exactement comme ici : http://sql.toutestfacile.com/cours/coun ... _by_2.php5

Sauf qu'avec mon code :

Code : Tout sélectionner

$requete = "SELECT hebergement, COUNT(hebergement) As somme FROM matable GROUP BY hebergement ORDER BY upby ASC" or die(mysql_error()); $res = mysql_query($requete); $file = mysql_fetch_array($res); echo $file['hebergement']; echo ' apparait '; echo $file['somme'].' fois'; echo ' <br /> '; ?>
les resultat me donne juste :

Gite apparait 1 fois

alors que moi je veut obtenir :

Gite apparait 1 fois
Camping apparait 3 fois
Hôtel apparait 2 fois




Comment dois-je faire ? un while ?

Merci de vos réponses

Avatar du membre
ViPHP
ViPHP | 3008 Messages

18 nov. 2008, 23:38

En effet un petit while pour parcourir ta table.
while($file = mysql_fetch_array($res))
{
...
}

Eléphanteau du PHP | 22 Messages

18 nov. 2008, 23:49

Merci de ta réponse.

voici ce que j'ai avec le while :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C: ..



que je mettre le while avant ou apres

Code : Tout sélectionner

$res = mysql_query($requete); $file = mysql_fetch_array($res);
ça ne marche pas.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

18 nov. 2008, 23:55

Voici comment t'as dit charabia et je t'ajoute quelque corrections:
$requete = "SELECT hebergement, COUNT(hebergement) As somme FROM matable GROUP BY hebergement ORDER BY upby ASC" ;

$res = mysql_query($requete) or die(mysql_error());

while ($res & $file = mysql_fetch_array($res))
{
  echo $file['hebergement'];
  echo ' apparait ';
  echo $file['somme'].' fois';
  echo ' <br /> '; 
}
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 22 Messages

19 nov. 2008, 00:10

merci sadeq,

c'est parfait ça marche

thx donc à charabia et sadeq :wink:

Eléphanteau du PHP | 22 Messages

19 nov. 2008, 00:21

Non

en fait ça marche en local

sur le net ça m'affiche une page blanche.

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Avatar du membre
ViPHP
ViPHP | 3008 Messages

19 nov. 2008, 10:05

lance ta requête directement sous phpmyadmin pour voir ce que ça donne

Eléphanteau du PHP | 22 Messages

19 nov. 2008, 16:46

Donc,
La requête sous phpmyadmin ce passe très bien, j'ai les résultats corrects.

J'ai donc deux problemes :

1) le script marche en local, mais pas en ligne.

2) le script (en local) ne marche q'une fois par page
par exemple si je le remet une deuxieme fois avec un "WHERE =" different du premier, pour avoir les stats d'une autre année par exemple, rien de s'affiche appart le premier script.

je vais essayé de comprendre pourquoi ces problemes..

Code : Tout sélectionner

<?php $cnt = mysql_connect("localhost", "***", "***"); mysql_select_db("***",$cnt); $requete = "SELECT hebergement, COUNT(hebergement) As somme FROM matable WHERE annee = 1 GROUP BY hebergement ORDER BY somme ASC" ; $res = mysql_query($requete) or die(mysql_error()); while ($res & $file = mysql_fetch_array($res)) { echo $file['hebergement']; echo ' apparait '; echo $file['somme'].' fois'; echo ' <br /> '; } mysql_close($cnt); php?>
Bonne journée.

Eléphant du PHP | 76 Messages

19 nov. 2008, 17:33

Code : Tout sélectionner

$cnt = mysql_connect("localhost", "***", "***");
heu sur le net c'est localhost ton serveur :oops: ?

Eléphanteau du PHP | 22 Messages

19 nov. 2008, 17:44

Code : Tout sélectionner

$cnt = mysql_connect("localhost", "***", "***");
heu sur le net c'est localhost ton serveur :oops: ?
Oui.. tous mes scripts fonctionnent comme ça, ce n'est pas bien ?

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

19 nov. 2008, 17:56

Le nom du serveur Mysql, le nom d'utilisateur et le mot de passe doivent correspondre à la configuration de ta base de données chez l'hébergeur de ton site Web sur le Net et non à la configuration locale.

Tu as bien une base de données MySQL hébergée chez ton hébergeur ? n'est-ce pas?
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 76 Messages

19 nov. 2008, 17:57

regarde dans la faq de ton hébergeur si i y a pas un autre nom

Eléphanteau du PHP | 22 Messages

19 nov. 2008, 18:04

infos :
Vos script php / perl doivent se connecter sur l'host : localhost