PHP Comptabilisation

Résolu
Utilisateur anonyme -  
Passarinho44 Messages postés 977 Statut Contributeur -
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. Passarinho44 Messages postés 977 Statut Contributeur 132
     
    $nom_de_ta_variable++ pour incrémenter ta variable ...

    C'est ce que tu cherches ?
    0
  2. Utilisateur anonyme
     
    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
  3. Passarinho44 Messages postés 977 Statut Contributeur 132
     
    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
  4. Utilisateur anonyme
     
    c'est exactement ce que j'ai testé mais je n'ai eu aucun résultat.

    Cela ne fonctionne pas.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Passarinho44 Messages postés 977 Statut Contributeur 132
     
    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
  7. Utilisateur anonyme
     
    oui le champ est bien un int "int(11)".

    Mais comment tu fais cela??
    0
  8. Passarinho44 Messages postés 977 Statut Contributeur 132
     
    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
  9. Utilisateur anonyme
     
    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
  10. Passarinho44 Messages postés 977 Statut Contributeur 132
     
    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. Utilisateur anonyme
       
      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
  11. Passarinho44 Messages postés 977 Statut Contributeur 132
     
    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
  12. Utilisateur anonyme
     
    J'ai corrigé l'érreur mais ca ne donne rien :

    Les 2 échos ne me retournent rien du tout.

    :-(
    0
  13. [o.o]REplay Messages postés 381 Date d'inscription   Statut Membre 28
     
    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. Utilisateur anonyme
       
      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
  14. Passarinho44 Messages postés 977 Statut Contributeur 132
     
    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. Utilisateur anonyme
       
      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
  15. Passarinho44 Messages postés 977 Statut Contributeur 132
     
    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
  16. Utilisateur anonyme
     
    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
  17. Passarinho44 Messages postés 977 Statut Contributeur 132
     
    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
  18. Utilisateur anonyme
     
    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
  19. Passarinho44 Messages postés 977 Statut Contributeur 132
     
    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