PHP Comptabilisation

Résolu
Re Bonjour,

Je voudrais vous posez une autre question.

Je fais un script en PHP et je voudrais savoir comment je peux Incrémenter de +1

Je m'explique : C'est un script de connexion pour utilisateur et je voudrais faire une comptabilisation du nombre de connexion et je ne sais pas comment faire.

Pouvez - vous m'aider??

Merci de votre collaboration.

18 réponses

  1. Contributeur
    $nom_de_ta_variable++ pour incrémenter ta variable ...

    C'est ce que tu cherches ?
    0
    1. En fait pour être un peu plus précis,

      Je veux incrémenter dans la table.

      Par exemple

      ConnexionMembre = 0
      et quand il se connaitre mettre a jour en incrémentant de 1.

      J'ai essayer avec un update mais ca a pars marché
      0
      1. Contributeur
        C'est ton update qui marche pas ou c'est le lien avec la connexion de l'utilisateur?

        L'update devrait donner quelque chose comme :

        Update 'ta_table' as t
        SET t.connexion = t.connexion + 1
        where nom = 'nom de l'utilisateur'; ( non testé )
        0
        1. c'est exactement ce que j'ai testé mais je n'ai eu aucun résultat.

          Cela ne fonctionne pas.
          0
          1. Contributeur
            T'es sûr que ton champ est un bien un int?

            Sinon une méthode pas très propre consiste à récupérer le contenu du champ que tu veux incrémenter dans une variable ( avec select .. ), à incrémenter la variable dans ton code et à faire un update avec cette variable ...

            C'est pas joli je sais mais c'est plus sûr ... :s
            0
            1. oui le champ est bien un int "int(11)".

              Mais comment tu fais cela??
              0
              1. Contributeur
                Si c'est un int bizarre que l'update ne marche pas ...

                Pour la méthode que je t'ai donné :

                $compt_util = mysql_query ( "SELECT connexion FROM ta_table AS t WHERE t.nom = '$nom_util");

                $compt_util++;

                mysql_query( "UPDATE ta_table AS t SET t.connexion = '$compt_util' WHERE nom = $nom_util");

                ( je n'ai pas testé .. )

                Dis moi si ça marche ça ....
                0
                1. Bonsoir,

                  je l'ai fait telle qu'ellle mais je n'ai aucun résultat.

                  voisi le script :

                  <?php

                  mysql_connect("host","login","mot de passe")
                  or die("Connexion au serveur impossible");
                  mysql_select_db("Membre")
                  or die("Sélection de la base impossible");

                  if( empty($_POST["login"])) {echo "Le nom d'utilisateur n'est pas renseigné<br><br>;
                  }
                  if( empty($_POST["password"])) {echo "<br>Vous avez oubliez d'insérer votre mot de passe<br>";
                  }
                  $login = $_POST[login];
                  $password = $_POST[password];

                  $sql = "select * FROM Membre WHERE PseudoMembre = '".$login."' AND PasswordMembre = '".$password."' ;";

                  $req = mysql_query($sql, Membre);

                  while ($test0 = mysql_fetch_row($req) )
                  {

                  if ($test0 == null )
                  {echo "<br> Nom d'utilisateur et / ou mot de passe incorrect";
                  } else
                  {echo "<br>Bonjour ".$login;
                  }
                  }
                  $connect = mysql_query("SELECT ConnexionMembre FROM Membre AS T WHERE PseudoMembre = $login;");

                  $connect++;

                  mysql_query("UPDATE Membre SET PseudoMembre = $connect WHERE PseudoMembre = $login;");
                  0
                  1. Contributeur
                    Tu as un message d'erreur ou pas?

                    Il se passe quoi ?

                    Essaie Membre.PseudoMembre à la place de simplement PseudoMembre.
                    Et aussi tu n'as pas besoin des ; à la fin de tes requetes SQL.

                    Essaie également tes requêtes comme cela : "SELECT ConnexionMembre FROM Membre AS T WHERE PseudoMembre = " . $login . "

                    Et :

                    "UPDATE Membre SET PseudoMembre = " . $connect . " WHERE PseudoMembre = " . $login . "

                    Fais un echo de $connect pour vérifier et vérifie ensuite dans ta base si la valeur de $connect s'est mise dedans.

                    Si tu as un problème déjà au niveau de $connect c'est normal que ça ne fonctionne pas.

                    Sinon C'est un problème dans le update.
                    0
                    1. Re bonjour je n'ai toujours aucun résultat

                      Tout se passe bien sauf l'incrémentation.

                      Script modifié :

                      <?php

                      mysql_connect("host","mon login","mon mot de passe")
                      or die("Connexion au serveur impossible");
                      mysql_select_db("Membre")
                      or die("Sélection de la base impossible");

                      if( empty($_POST["login"])) {echo "Le nom d'utilisateur n'est pas renseigné<br><br>";
                      }
                      if( empty($_POST["password"])) {echo "<br>Vous avez oubliez d'insérer votre mot de passe<br>";
                      }
                      $login = $_POST[login];
                      $password = $_POST[password];

                      $sql = "select * FROM Membre WHERE PseudoMembre = '".$login."' AND PasswordMembre = '".$password."' ;";

                      $req = mysql_query($sql, Membre);

                      while ($test0 = mysql_fetch_row($req) )
                      {

                      if ($test0 == null )
                      {echo "<br> Nom d'utilisateur et / ou mot de passe incorrect";
                      } else
                      {echo "<br>Bonjour ".$login;
                      }
                      }
                      $connect = mysql_query("SELECT ConnexionMembre FROM Membre AS T WHERE Membre.PseudoMembre = ".$login."");
                      {echo "$connect";
                      }

                      $connect++;
                      {echo "$connect";
                      }

                      mysql_query("UPDATE Membre SET Membre.PseudoMembre = ".$connect." WHERE Membre.PseudoMembre = ".$login."");

                      ?>
                      0
                  2. Contributeur
                    Ils te retournent quoi les 2 : "echo $connect" ?

                    Et dans ta base il se passe quoi au niveau de ConnexionMembre?

                    Ah oui et petite erreur :

                    "mysql_query("UPDATE Membre SET Membre.PseudoMembre = ".$connect." WHERE Membre.PseudoMembre = ".$login.""); "

                    C'est pas plutôt :
                    mysql_query("UPDATE Membre SET Membre.ConnexionMembre = ".$connect." WHERE Membre.PseudoMembre = ".$login."");
                    0
                    1. J'ai corrigé l'érreur mais ca ne donne rien :

                      Les 2 échos ne me retournent rien du tout.

                      :-(
                      0
                      1. moi ce qui me dérange c'est tes '''''''''''''''''''''''&variables''''''''''''''''''''''''''...as-tu des messages d'erreurs?
                        Le mieux cest de faire quelquechose du type:

                        $query = "SELECT * FROM gna WHERE gna = \' '.$variable.' \' ; " ; (jai mis pleins d'espaces pour que ça soit visible hein ^^ )
                        0
                        1. Bonjour [o.o]Replay, mes variables sont intactes je n'ai aucune erreur.

                          de plus en essayant ta méthode j'obtiens cette erreur :

                          Fatal error: Call to undefined function: () in /mnt/104/sdb/7/3/cadenot/connexion.php on line 28
                          0
                      2. Contributeur
                        Pourquoi tu mets tes echo dans des {}

                        Essaie plutôt :

                        $connect = mysql_query("SELECT ConnexionMembre FROM Membre WHERE Membre.PseudoMembre = " . $login );

                        while ( $test1 = mysql_fetch_row($connect) )
                        { echo "$connect";
                        }

                        $test1++;
                        {echo "$test1";
                        }

                        mysql_query("UPDATE Membre SET Membre.PseudoMembre = " . $test1 . " WHERE Membre.PseudoMembre = " . $login );

                        Je ne suis pas convaincu mais sait-on jamais ^^
                        0
                        1. ca semble s'améliorer mais j'obtiens cette erreur :

                          Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /mnt/104/sdb/7/3/connexion.php on line 30
                          1

                          Script modifié :

                          <?php

                          mysql_connect("",""")
                          or die("Connexion au serveur impossible");
                          mysql_select_db("Membre")
                          or die("Sélection de la base impossible");

                          if( empty($_POST["login"])) {echo "Le nom d'utilisateur n'est pas renseigné<br><br>";
                          }
                          if( empty($_POST["password"])) {echo "<br>Vous avez oubliez d'insérer votre mot de passe<br>";
                          }
                          $login = $_POST[login];
                          $password = $_POST[password];

                          $sql = "select * FROM Membre WHERE PseudoMembre = '".$login."' AND PasswordMembre = '".$password."' ;";

                          $req = mysql_query($sql, Membre);

                          while ($test0 = mysql_fetch_row($req) )
                          {

                          if ($test0 == null )
                          {echo "<br> Nom d'utilisateur et / ou mot de passe incorrect";
                          } else
                          {echo "<br>Bonjour ".$login;
                          }
                          }
                          $connect = mysql_query("SELECT ConnexionMembre FROM Membre WHERE Membre.PseudoMembre = ".$login."");

                          while ( $test1 = mysql_fetch_row($connect) )
                          { echo "$connect";
                          }

                          $test1++;
                          {echo "$test1";
                          }

                          mysql_query("UPDATE Membre SET Membre.PseudoMembre = ".$test1." WHERE Membre.PseudoMembre = ".$login."");
                          0
                      3. Contributeur
                        J'ai ENFIN trouvé l'erreur ! ! ! lool

                        Dans ta requete, il faut que le champ login soit entre quotes!

                        Donc ("SELECT ConnexionMembre FROM Membre WHERE Membre.PseudoMembre = '" . $login . "'");

                        Pareil ici :
                        ("UPDATE Membre SET Membre.PseudoMembre = '".$test1."' WHERE Membre.PseudoMembre = '".$login."'");

                        Bon normalement là ça marche ^^

                        Tiens moi au courant =)
                        0
                        1. Re,

                          Ben je l'ai éxécuté, mais j'obtiens Resource id #3 qui vient d'un écho et je sais pas lequel en plus...

                          Script modifié :

                          <?php

                          mysql_connect("host","login","mdp")
                          or die("Connexion au serveur impossible");
                          mysql_select_db("Membre")
                          or die("Sélection de la base impossible");

                          if( empty($_POST["login"])) {echo "Le nom d'utilisateur n'est pas renseigné<br><br>";
                          }
                          if( empty($_POST["password"])) {echo "<br>Vous avez oubliez d'insérer votre mot de passe<br>";
                          }
                          $login = $_POST[login];
                          $password = $_POST[password];

                          $sql = "select * FROM Membre WHERE PseudoMembre = '".$login."' AND PasswordMembre = '".$password."' ;";

                          $req = mysql_query($sql, Membre);

                          while ($test0 = mysql_fetch_row($req) )
                          {

                          if ($test0 == null )
                          {echo "<br> Nom d'utilisateur et / ou mot de passe incorrect";
                          } else
                          {echo "<br>Bonjour ".$login;
                          }
                          }
                          $connect = mysql_query("SELECT ConnexionMembre FROM Membre WHERE Membre.PseudoMembre = '".$login."'");

                          while ( $test1 = mysql_fetch_row($connect) )
                          { echo "$connect";
                          }

                          $test1++;
                          {echo "$test1";
                          }

                          mysql_query("UPDATE Membre SET Membre.PseudoMembre = ".$test1." WHERE Membre.PseudoMembre = '".$login."'");
                          0
                          1. Contributeur
                            Re,

                            Oui désolé j'ai oublié de t'expliquer un truc ...

                            Ton bout de code :

                            $connect = mysql_query("SELECT ConnexionMembre FROM Membre WHERE Membre.PseudoMembre = '".$login."'");

                            while ( $test1 = mysql_fetch_row($connect) )
                            { echo "$connect";
                            }

                            $test1++;
                            {echo "$test1";
                            }

                            mysql_query("UPDATE Membre SET Membre.PseudoMembre = ".$test1." WHERE Membre.PseudoMembre = '".$login."'");

                            Remplace le par :

                            $connect = mysql_query("SELECT ConnexionMembre FROM Membre WHERE Membre.PseudoMembre = '".$login."'");

                            $test1 = mysql_fetch_row($connect);
                            echo "$test1[$login]"; // $test1 est un tableau donc il lui préciser quel "case" choisir

                            $test1[$login]++;
                            {echo "$test1[$login]";
                            }

                            mysql_query("UPDATE Membre SET Membre.PseudoMembre = ".$test1[$login]." WHERE Membre.PseudoMembre = '".$login."'");

                            Par contre je ne sais pas si c'est plutôt mysql_fetch_row($connect) ou mysql_fetch_array($connect)

                            Essaie les 2.
                            0
                            1. Ca marche!!!:-):-)

                              Comment te remercier, je suis désolé de t'avoir pris de ton temps, et te remercie infiment du temps que tu m'as accordé :-):-)

                              ENCORE MERCI :-)
                              0
                              1. Contributeur
                                Pas de soucis c'est fait pour ça les forums ^^ Si t'as d'autres problèmes n'hésites pas ^^
                                Je ne suis pas un as mais je commence à connaitre quelques trucs ^^

                                N'oublies pas de cocher la petite case "problème résolu" ;)

                                A bientôt =)
                                0