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 ?
    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é
      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é )
        1. c'est exactement ce que j'ai testé mais je n'ai eu aucun résultat.

          Cela ne fonctionne pas.
          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
            1. oui le champ est bien un int "int(11)".

              Mais comment tu fais cela??
              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 ....
                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;");
                  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.
                    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."");

                      ?>
                  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."");
                    1. J'ai corrigé l'érreur mais ca ne donne rien :

                      Les 2 échos ne me retournent rien du tout.

                      :-(
                      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 ^^ )
                        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
                      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 ^^
                        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."");
                      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 =)
                        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."'");
                          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.
                            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 :-)
                              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 =)