Php: Fatal error: Unsupported operand types

Résolu/Fermé
bulitt - 9 janv. 2009 à 23:21
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 - 9 janv. 2009 à 23:58
bonjour,

voila le topo,

j'ai créer des balises radios qui permettent de choisir une note

ensuite j'ai créer le code php mais celui-ci bloque à l'avant dernière ligne, pouvez vous m'expliquer ce qui va pas:

if (isset($_POST['notes']))
{
$notes = $_POST['notes'];
mysql_query("INSERT INTO livreor VALUES('','','', '" . $notes . "')");
}

$nbr = mysql_query('SELECT COUNT(*) AS notes FROM livreor'); //récupère tous les notes
$tab = mysql_fetch_array($nbr); //mettre sous forme de tableau
$totalDesnotes = $tab['notes'];
$moyenne = ceil($tab / $totalDesnotes); //erreur: Unsupported operand types pour faire la moyenne des notes

echo "( $moyenne ) ";

je vous remercie d'avance
A voir également:

1 réponse

asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
9 janv. 2009 à 23:30
Bonsoir,

ce qui ne va pas, c'est que tu tente de diviser un tableau par un nombre...
$tab vaut: array('notes'=> [nombre d'enregistrement dans la table livreor])
0
Merci pour ta réponse,

mais je galère, oui je viens de commencer le php!!!

quel est la bonne écrire pour $moyenne=?

merci
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426 > bulitt
9 janv. 2009 à 23:49
Ben...
pour calculer une moyenne, il te faut la somme des notes, et le nombre de notes...
somme/nombre=moyenne... la en l'occurence, ta requete SQL ne te renvoi que le nombre de notes ;-)

Tu peux fair une requête avec SUM(colonne_de_note) pour récuperer la somme
SELECT SUM(note) as sum, COUNT(1) as nb FROM livreor


Dans ce cas la, il faudra diviser $tab['sum'] par $tab['nb']

Mais les solutions sont diverses et ton problème ne vient pas de PHP, mais de la façon de calculer la moyenne (algo) ou de ta compréhension du requetage en base de données (SQL)

Bonne nuit!
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426 > asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022
9 janv. 2009 à 23:58
Comme quoi, il était temps que j'aille me coucher...

Le plus simple serait de faire calculer la moyenne par mysql directement...
SELECT AVG(note) as moyenne as nb FROM livreor

Là, plus de calcul a faire, c'est mysql qui le fait pour toi...

$tab['moyenne'] contient la moyenne calculée :)

Je retourne dans mon lit!
0