Calculer un % en php

Signaler
Messages postés
33
Date d'inscription
mardi 15 mai 2007
Statut
Membre
Dernière intervention
18 décembre 2007
-
Messages postés
33
Date d'inscription
mardi 15 mai 2007
Statut
Membre
Dernière intervention
18 décembre 2007
-
Bonjour à tous et merci de votre aide.

Je souhaiterais afficher sur mon site le % de reussite des pronos mais ca ne marche pas :

$total = mysql_query('SELECT COUNT(Resultat) AS tot  FROM pronos12 ');$reussite mysql_query('SELECT COUNT(Resultat) AS win  FROM pronos12 WHERE Resultat"oui" ');$echec mysql_query('SELECT COUNT(Resultat) AS wrong  FROM pronos12 WHERE Resultat"non" ');


$division = $reussite/$total*100;

le resultat obtenu n'est pas cohérent : ca m'affiche qqch au dessus de 100 ...

4 réponses

Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
7
Tes variables $total, $reussite, $echec ce sont des objects pas des valeurs. Pour récupérer les résultats tu devrais utiliser les fonctions mysql; mysql_fetch_assoc ou mysql_fetch_array ou mysql_fetch_row.

Voila la doc de PHP.net :
http://fr.php.net/manual/fr/function.mysql-fetch-array.php
http://fr.php.net/manual/fr/function.mysql-fetch-assoc.php
http://fr.php.net/manual/fr/function.mysql-fetch-row.php
Messages postés
962
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
2 août 2010
1
Salut,
mysql_result serait plus approprié ici puisque tu n'as qu'un champ a récuperé.

de plus tu peux le faire en une seule requete (plus une imbriqué) ton pourcentage:

$query=mysql_query("select ((select count(* ) from pronos12 where Resultat = 'oui')+0.01) /count( * ) * 100 from pronos12;");

et tu récupere avec $division=mysql_result($query,0,0);

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
Messages postés
33
Date d'inscription
mardi 15 mai 2007
Statut
Membre
Dernière intervention
18 décembre 2007

Merci beaucoup pour cette solution magique !
En déquortiquant, ca parait logique pourtant je peine à inclure le round.

j'ai essayé un peu partout mais sans succès.

En tout cas merci mille fois pour la solution !
Messages postés
33
Date d'inscription
mardi 15 mai 2007
Statut
Membre
Dernière intervention
18 décembre 2007

j'ai encore essayé mais en vain.

j'ai compris qu'il fallait mettre ROUND(COUNT(Resultat),2)) mais marche pas...
Quelqu un peut m'aider ?