Requete sql avec variable php [Résolu/Fermé]

Signaler
Messages postés
330
Date d'inscription
lundi 25 juin 2007
Statut
Membre
Dernière intervention
26 mai 2017
-
Messages postés
330
Date d'inscription
lundi 25 juin 2007
Statut
Membre
Dernière intervention
26 mai 2017
-
Bonjour,

je voudrai enregistrer un nombre de clic sur une page. Je fais donc la chose suivante :

$clics=$donnees['clics'];
$clics=$clics+1;
echo $clics;

mysql_query ("Update jeux SET clics='$clics' where id='.donnees['id'].' ");

Je n'ai pas d'erreur lors de l'execution de requète, mais il n'y a rien qui s'ajoute en bdd.
Le champ clics ne s'incrémente pas.

Quelqu'un sait la cause ? Et pourrai m'expliquer comment je peux faire ?

Merci d'avance de vos réponses.
Guillaume

5 réponses

Messages postés
570
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
82
Manque le $ à ta variable $donnees.

Sinon, pour incrémenter, tu peux le faire directement dans ta requête.

$sql = 'UPDATE jeux SET clics=clics+1 WHERE id=' . $donnees['id'];
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 61367 internautes nous ont dit merci ce mois-ci

Messages postés
330
Date d'inscription
lundi 25 juin 2007
Statut
Membre
Dernière intervention
26 mai 2017
183
Merci pour ton aide,

cela fonctionne maintenant.

Guillaume
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 61367 internautes nous ont dit merci ce mois-ci

Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
55
détecter les clics: javascript
enregistrer dans une bdd: php
coupler javascript et php pour faire ça: ajax.

what else?
Messages postés
330
Date d'inscription
lundi 25 juin 2007
Statut
Membre
Dernière intervention
26 mai 2017
183
Tout d'abord merci pour vos réponses, mais cela ne semble pas fonctionner , voici le code :


#####

$jeux=$_GET['jeux'];

$cate = mysql_query("SELECT * FROM jeux where id='$jeux'");

while ($donnees = mysql_fetch_array($cate) )
{

// Ici un ensemble de commande


$sql = 'UPDATE jeux SET clics=$clics+1 WHERE id=$id';

// Et la on compte
$clics=$donnees['clics'];
echo $clics;

// Affichage id du jeu
$id=$donnees['id'];
echo $id;

}

#######

Mon id s'affiche bien.
Les clics aussi, mais cela reste tout le temps à 0, le chiffre ne s'incrémente pas...

Une idée ?

Merci d'avance.
Guillaume
Bonjour


$sql = 'UPDATE jeux SET clics=$clics+1 WHERE id=$id';
le $clics est absurde, tu n'as aucune variable $clis à ce moment là
De plus, la requête étant entourée de simples quotes ' et non pas de doubles ", les variables ne seront pas remplacées par leurs valeurs.
même remarque pour $id
ta requête marcherait sûrement mieux si tu la mettais après avoir extrait les variables $clics et $id, mais tu peux tout faire en une seule ligne :
$sql = "UPDATE jeux SET clics=clics+1 WHERE id='$donnees[id]'"; 


Enfin, tu n'exécutes jamais cette requête : tout ce que tu fais, c'est la mettre dans une chaîne. Il faut appeler mysql_query pour l'exécuter !

Enfin, la "logique" du programme est tordue : tu extrais les enregistrements dont l'id et données par $jeux, puis tu les balayes un par un pour faire un update avec comme clause WHERE d'avoir le bon id... à quoi sert de les avoir extraits avant ? Autant faire un seul update avec where id = '$jeux' (avant ta boucle) quitte à faire ensuite un select si tu veux vraiment afficher quelque chose. Mais si tu ne veux que la mise à jour, la totalité de ton script se résume à une seule ligne :
mysql_query("UPDATE jeux SET clics=clics+1 WHERE id='$_GET[jeux]'") or die (mysql_error());