PHP Comptabilisation

Résolu/Fermé
Utilisateur anonyme - 19 juin 2008 à 15:56
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 - 20 juin 2008 à 19:19
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

Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
19 juin 2008 à 15:58
$nom_de_ta_variable++ pour incrémenter ta variable ...

C'est ce que tu cherches ?
0
Utilisateur anonyme
19 juin 2008 à 16:04
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
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
19 juin 2008 à 16:29
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
Utilisateur anonyme
19 juin 2008 à 16:37
c'est exactement ce que j'ai testé mais je n'ai eu aucun résultat.

Cela ne fonctionne pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
19 juin 2008 à 16:54
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
Utilisateur anonyme
19 juin 2008 à 16:55
oui le champ est bien un int "int(11)".

Mais comment tu fais cela??
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
19 juin 2008 à 17:04
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
Utilisateur anonyme
19 juin 2008 à 21:37
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
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
20 juin 2008 à 07:59
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
Utilisateur anonyme
20 juin 2008 à 11:12
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
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
20 juin 2008 à 12:09
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
Utilisateur anonyme
20 juin 2008 à 13:01
J'ai corrigé l'érreur mais ca ne donne rien :

Les 2 échos ne me retournent rien du tout.

:-(
0
[o.o]REplay Messages postés 357 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 20 juillet 2009 28
20 juin 2008 à 13:44
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
Utilisateur anonyme
20 juin 2008 à 14:20
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
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
20 juin 2008 à 14:21
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
Utilisateur anonyme
20 juin 2008 à 15:09
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
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
20 juin 2008 à 15:45
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
Utilisateur anonyme
20 juin 2008 à 16:25
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
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
20 juin 2008 à 17:25
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
Utilisateur anonyme
20 juin 2008 à 18:07
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
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
20 juin 2008 à 19:19
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