Page 1 sur 1

Meilleure méthode pour statistiques

Posté : 18 avr. 2006, 23:05
par jpsartre
Bonjour,

J'aimerais , à chaque fois qu'un utilisateur s'identifie sur son espace abonné, comptabiliser sa visite.
:?: Vaut-il mieux ajouter un champ dans ma table abonné pour stocker le nombre de visites, ou vaut- il mieux créer une nouvelle table (pseudo, nbrvisites)?

:?: De plus, comment faire pour que la requête ajoute 1 au nombre stocké dans le champ?
Si quelqu'un peut me montrer à quoi ressemble l'instruction...

Merci

Posté : 18 avr. 2006, 23:26
par Cyrano
Tu peux rajouter un champ "nbVisites" tans la table abonné : pour l'incrémentation, c'est pas compliqué : lorsque ton visiteur s'identifie, profites-en pour récupérer la valeur du champ nbVisites, incrémentes-le et fais une requête UPDATE.

Posté : 18 avr. 2006, 23:35
par jpsartre
J'ai compris la démarche.
Je vais essayer tout de suite,

Merci

Posté : 19 avr. 2006, 00:30
par jpsartre
J'ai essayé ce code :
if ($loginOK) {
$_SESSION['pseudo'] = $data['pseudo'];
$recupVisites = mysql_query('SELECT nbVisites FROM abonnes WHERE pseudo='.$_SESSION['pseudo'].'');
$totVisites = ($recupVisites+1);
$update = mysql_query('UPDATE abonnes SET nbVisites='.$totVisites.' WHERE pseudo='.$_SESSION['pseudo'].'');
require ('header_abonnes.php');
//etc...
Et je n'arrive pas à comprendre pourquoi ça ne marche pas. (Et pseudo n'est pas ma clé primaire.)
Si quelqu'un a une idée,
Merci

Posté : 19 avr. 2006, 01:07
par Truc
ce n'est pas oblgatoire de refaire une requête juste pour la récupération de nombre de connexion. Cyrano parlais de la requete lors de la connexion avec le login et passe... y récupérer aussi le nombre de connexion.

sinon tu peux aussi effectuer le calcul dans la requête et affiche la requete générée:
$sql='UPDATE abonnes SET nbVisites=nbVisites+1 WHERE pseudo="'.$_SESSION['pseudo'].'"';
echo $sql;
$update = mysql_query($sql); 
manquais des quillemets autour du pseudo.

Posté : 19 avr. 2006, 01:26
par jpsartre
Merci beaucoup,
ça marche, mais j'ai quand même une petite question parce quelquechose m'échappe.
Le code :
if ($loginOK) {
$_SESSION['pseudo'] = $data['pseudo'];
//$nbVisites = mysql_query('SELECT nbVisites FROM abonnes WHERE pseudo='.$_SESSION['pseudo'].'');
//$totVisites = ($recupVisites+1);
//$update = mysql_query('UPDATE abonnes SET nbVisites='.$totVisites.' WHERE pseudo='.$_SESSION['pseudo'].'');
$sql='UPDATE abonnes SET nbVisites=nbVisites+1 WHERE pseudo="'.$_SESSION['pseudo'].'"'; 
echo $sql; 
$update = mysql_query($sql); 
require ('header_abonnes.php');
Je ne comprends pas dans :
$sql='UPDATE abonnes SET nbVisites=nbVisites+1 WHERE pseudo="'.$_SESSION['pseudo'].'"'; 
le nbVisites+1, parceque je m'attendais plutôt à voir une variable+1, et là, je ne comprends pas ce qu'est nbVisites.
Comme ça marche je me dis que c'est la valeur du champs nbVisite, mais pourquoi est-il sans $?

Merci

Posté : 19 avr. 2006, 19:28
par Truc
le nbVisites+1, parceque je m'attendais plutôt à voir une variable+1, et là, je ne comprends pas ce qu'est nbVisites.
Comme ça marche je me dis que c'est la valeur du champs nbVisite, mais pourquoi est-il sans $?
Il n'y a pas de "$" ?! :-k

L'opération reprend le contenu du champ en cours lui ajoute un et l'affecte a nouveau au champ. Il s'agit donc du "nom" du champ "nbVisites" de ta table

Posté : 20 avr. 2006, 00:39
par jpsartre
Je me doutais que ma question était surprenante, mais c'est vrai que je ne savais pas qu'on pouvait faire ça.
Merci beaucoup. Le site que je fais avance bien. Et c'est la première fois que je peux faire ce que je veux grace à toute l'aide que je reçois sur ce forum.
Top :wink: