Page 1 sur 1

Lister et compter les valeurs d'un champ

Posté : 18 nov. 2008, 20:16
par oups
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

Posté : 18 nov. 2008, 23:38
par charabia
En effet un petit while pour parcourir ta table.
while($file = mysql_fetch_array($res))
{
...
}

Posté : 18 nov. 2008, 23:49
par oups
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.

Posté : 18 nov. 2008, 23:55
par sadeq
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 /> '; 
}

Posté : 19 nov. 2008, 00:10
par oups
merci sadeq,

c'est parfait ça marche

thx donc à charabia et sadeq :wink:

Posté : 19 nov. 2008, 00:21
par oups
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]

Posté : 19 nov. 2008, 10:05
par charabia
lance ta requête directement sous phpmyadmin pour voir ce que ça donne

Posté : 19 nov. 2008, 16:46
par oups
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.

Posté : 19 nov. 2008, 17:33
par jobart

Code : Tout sélectionner

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

Posté : 19 nov. 2008, 17:44
par oups

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 ?

Posté : 19 nov. 2008, 17:56
par sadeq
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?

Posté : 19 nov. 2008, 17:57
par jobart
regarde dans la faq de ton hébergeur si i y a pas un autre nom

Posté : 19 nov. 2008, 18:04
par oups
infos :
Vos script php / perl doivent se connecter sur l'host : localhost