Bonjour,
Mon niveau SQL est limité et je suis confronté à ce pb :
Je me connecte à une première base de données pour calculer la moyenne des notes :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 // Connexion puis : $query1 = mysql_query("SELECT AVG(rating) FROM table1"); $result1 = mysql_fetch_assoc($query1); $average_rating = round($result1["AVG(rating)"]/0.5)*0.5;
J'ai plusieurs enregistrements dans la table.
rating est de type TINYINT 1
Un echo me donne 3.5 par exemple.
Je me connecte à une deuxième base de données pour y copier cette valeur :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 // Connexion puis : mysql_query("UPDATE table2 SET note = '$average_rating'");
Lorsque je récupère le champs note de table 2 par :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $sql = "SELECT * FROM table2"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $data = mysql_fetch_assoc($req);
Un echo $data['note'] me donne 4 ! (toujours dans le cas où j'avais 3.5 pour $average_rating)
note est de type TINYINT 1
Je préfèrerais avoir 3.5 ! Comment ce fait-il que ma donnée soit arrondie ?
J'ai regardé du côté des type; voici ce que cela me retourne (mais je ne sais pas exploiter cette info)
echo gettype($data['note']) retourne string
echo gettype($average_rating) retourne double
Pouvez-vous m'aider ?
Partager