Requete sql avec variable php

Résolu
clastype Messages postés 361 Statut Membre -  
clastype Messages postés 361 Statut Membre -
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

--

Linux is my friend
Windows is the best
Configuration: Portable Fujitsu Siemens
P4 3,0 Ghz
1024 Mo Ram
Ecran 14"

5 réponses

  1. P@t@ch0n Messages postés 603 Statut Membre 85
     
    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
  2. clastype Messages postés 361 Statut Membre 195
     
    Merci pour ton aide,

    cela fonctionne maintenant.

    Guillaume
    1
  3. Smoking bird Messages postés 911 Statut Membre 58
     
    détecter les clics: javascript
    enregistrer dans une bdd: php
    coupler javascript et php pour faire ça: ajax.

    what else?
    0
  4. clastype Messages postés 361 Statut Membre 195
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. le père
     
    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());
    0