IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Compteur de visites qui débloque [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 164
    Points : 61
    Points
    61
    Par défaut Compteur de visites qui débloque
    Bonjour

    J'ai créer un compteur simple en PHP et MYSQL
    Jusque là pas de problème.
    Mon compteur dans une page vierge marche très bien, il incrémente de 1 comme prévu.
    Le hic !! est que dès que je met mon code dans la page "index.php" il incrémente de 2 alors que je n'ai rien changer au code.
    vous pouvez voir les deux cas avec le même code:
    www.gestechbat.com et www.gestechbat.com/a.php
    sur la page "a.php" j'ai décomposé l'affichage, donc avec le select ensuite après l'update et encore un select.
    Le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
       $requete = "select * from visit";
       $result = $db->query($requete);
       while($row=$result->fetch()){
       $a = $row['visite'];
     
          $b = $a+1;
     
       $id="1";
       $sql = $db->prepare("UPDATE visit SET visite =:param1 WHERE id=:param2");
       $sql->BindValue(':param1', $b, PDO::PARAM_STR);
       $sql->BindValue(':param2', $id, PDO::PARAM_INT);
       $sql->execute();
        }
    echo $b;
    Pour moi c'est incompréhensible.

    Avez-vous une idée ?

    Merci de votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pour incrementer c'est simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sth = $db->prepare("UPDATE visit SET visite = visite + 1 WHERE id= :id");
    $sth->execute(array(':id'=>$id));
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 164
    Points : 61
    Points
    61
    Par défaut
    Merci bien

    Cela me fait toujours la même chose

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    On peut voir la code entier de a.php ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 164
    Points : 61
    Points
    61
    Par défaut
    Le même que le premier post
    D'où cette incompréhension

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $id="1";
       $sth = $db->prepare("UPDATE visit SET visite = visite + 1 WHERE id= :id");
       $sth->execute(array(':id'=>$id));
     
       $requete = "select * from visit";
       $result = $db->query($requete);
       while($row=$result->fetch()){
       $a = $row['visit'];
     
        }

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il n'y a aucun echo dans le code que tu nous montres donc ça m'etonerait que ce soit le code de a.php

    Bref dans ta requête ligne 5 tu selectionnes l'intégralité de la table, tu as donc autant de résultats que d'id inserés.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 164
    Points : 61
    Points
    61
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $id="1";
       $sth = $db->prepare("UPDATE visite SET visite = visite + 1 WHERE id= :id");
       $sth->execute(array(':id'=>$id));
     
       $requete = "select * from visit";
       $result = $db->query($requete);
       while($row=$result->fetch()){
       $a = $row['visite'];
     
      echo $a;
        }
    Je n'insert pas dans cette table juste un update qui increment le champ de 1 et il le fait pas puisqu'il m'en met deux

    Bon je vois qu'en fait l'update est de 2 et non de 1... AVEC TON CODE

    AVEC LE MIEN

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
       $requete = "select * from visit";
       $result = $db->query($requete);
       while($row=$result->fetch()){
       $b = $row['visite'];
     
     echo "$b";
             $b = $b+1;
       $id="1";
       $sql = $db->prepare("UPDATE visit SET visite =:param1 WHERE id=:param2");
       $sql->BindValue(':param1', $b, PDO::PARAM_STR);
       $sql->BindValue(':param2', $id, PDO::PARAM_STR);
       $sql->execute();
        }
    La ca marche mais que sur la page "a.php" pas sur la page "index.php"

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Quand je vais sur ta page a.php j'ai bien chaque ligne incrementée de 1, donc je ne vois pas ton problème.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 164
    Points : 61
    Points
    61
    Par défaut
    On est d'accord c'est bien là le soucis
    Je fais un copier/coller de cette page (il n'y a que ce code) et sur ma page index, il n'y a que ce code en php mais il m'incrémente de 2 et non de 1

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je sais pas, tu me dis qu'avec mon code ça ne marche pas du tout.

    Montre nous le code de index alors.
    En général ce genre de problème est dû à une mauvaise déclaration CSS.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 164
    Points : 61
    Points
    61
    Par défaut
    Re
    Le code source de la page est le code de ma page
    Juste le code php en plus pour ce compteur.

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    J'ai pris ton code HTML, j'y ai mis ma requête UPDATE et j'ai bien +1 dans la table à chaque visite.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 164
    Points : 61
    Points
    61
    Par défaut
    Bonjour

    Ha alors c'est quoi le soucis du coup ?

    Je viens de prendre la source et mis le code et toujours la même chose.
    Je ne comprends pas le problème
    Je fais des update sur du stock et la sur le compteur cela ne marche pas.

    Bon pas grave.

    C'était un plus ce compteur mais pas obligatoire.

    Merci tout de même pour le temps qui tu m'as accordé.

    Bonne journée

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 164
    Points : 61
    Points
    61
    Par défaut
    LOL

    J'ai contourner le problème (qui est incompréhensible tout de même)
    J'ai ajouter "/2" a ta requête puis fais un "ceil()" sur le résultat et du coup j'ai un bon affichage.
    Mais c'est pas normal de passer par cela.

    Bref comme on dit "c'est le résultat qui compte".
    Juste que c'est une prise de tête pour si peu.

    Je te remercies pour l'aide encore.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/09/2013, 15h50
  2. méthode pour compteur de visites qui ne marche plus
    Par laurentSc dans le forum Langage
    Réponses: 2
    Dernier message: 13/03/2011, 19h01
  3. Réponses: 12
    Dernier message: 19/10/2010, 22h55
  4. Compteur de visite qui compte double
    Par tabouet dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 23/10/2007, 21h54
  5. Compteur de visites
    Par linou dans le forum Outils
    Réponses: 2
    Dernier message: 13/07/2005, 10h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo