8791 sujets

Développement web côté serveur, CMS

Bonjour,

Je voudrai mettre en place un compteur de vidéo vues.

Le problème c'est que celui-ci reste bloqué sur la variable + 1, il remplace la valeur précédente par + 1 il n'ajoute pas la valeur précédente à la nouvelle.

//Mettre à jour le compteur vidéo
$number_of_views = mysql_real_escape_string($result["number_of_views"]);
$views_counter = $number_of_views + 1;
$sql = mysql_query("UPDATE `podcast` SET `number_of_views` = '$views_counter' WHERE id = '$id'");
$query = @mysql_query($sql);
tu te compliques la vie pour rien, MySQL est capable de faire des additions :

$sql = mysql_query("UPDATE `podcast` SET `number_of_views` = `number_of_views` + 1 WHERE `id` = " . (int) $id);
$query = mysql_query($sql) or die(mysql_error());


Ca suffit tout simplement. Au passage j'ai viré les '' autour de $id, car c'est numérique donc pas besoin de '' et j'ai forcé le type en (int) au cas où.
Bizard il me faut un doublon sur certains id c'est a dire qu'il m'ajoute 2 au lieu de 1.

Et si je lance or die(mysql_error()); j'ai un message d'erreur Smiley decu
Salut,

Surfoo a écrit :


$sql = mysql_query("UPDATE `podcast` SET `number_of_views` = `number_of_views` + 1 WHERE `id` = " . (int) $id);
$query = mysql_query($sql) or die(mysql_error());

pitite faute d'inattention Smiley cligne . A remplacer par :

$query = mysql_query("UPDATE `podcast` SET `number_of_views` = `number_of_views` + 1 WHERE `id` = " . (int) $id) or die(mysql_error());

Modifié par Heyoan (07 Nov 2008 - 01:52)