Probleme sur compteur avec base de donnée
Résolu/Fermé
fredy7
Messages postés
41
Date d'inscription
dimanche 29 juillet 2007
Statut
Membre
Dernière intervention
19 juillet 2010
-
29 juil. 2007 à 20:40
Utilisateur anonyme - 15 oct. 2007 à 21:25
Utilisateur anonyme - 15 oct. 2007 à 21:25
A voir également:
- Probleme sur compteur avec base de donnée
- Formules excel de base - Guide
- Supprimer une base de données phpmyadmin ✓ - Forum Logiciels
- Échec inscription base gigaset ✓ - Forum telephonie fixe
- Tnt base de données vide - Forum TNT / Satellite / Réception
- Célia doit nettoyer le tableau suivant pour l'ajouter à la base de données de son entreprise. les données sont ensuite traitées automatiquement. quelles sont les 4 cellules qui risquent de poser problème ? ✓ - Forum Excel
15 réponses
salut, j'ai tester ton code et il marche...voila les etapes que j'ai suivi:
1-j'ai creer une nouvelle base de donner ayant comme nom "basecompteur"
2-j'ai utiliser cette requete pour creer une nouvelle table:
# Structure de la table `compteur`
CREATE TABLE compteur (
id smallint(6) NOT NULL auto_increment,
page varchar(255) NOT NULL default '',
nombre smallint(6) NOT NULL default '0',
date date NOT NULL default '0000-00-00',
heure time NOT NULL default '00:00:00',
PRIMARY KEY (id)
) TYPE=MyISAM;
3-j'ai creer le repertoir "compteur" dans le dossier "www"
4-dans ce repertoir j'ai creer le fichier "Compteur.php" voici son code:
<?
/* inclure le fichier de paramètres
* et se connecter à la base de données
*/
require ("params.inc.php");
$connexion= mysql_connect($hote,$login,$mdp);
mysql_select_db($bd, $connexion);
// récupère le nom complet (précédé du chemin) du fichier de la page en cours d'exécution
$page=$PHP_SELF;
// exécute une requête pour chercher ce nom dans la table
$req="select * from compteur where page='$page'";
$resultat=mysql_query($req,$connexion);
$nb= mysql_num_rows($resultat);
// si le nom du fichier se trouve déjà dans la table,
if ($nb == 1) {
$ligne= mysql_fetch_array($resultat);
/* alors on récupère la valeur du champ compteur,
on l'incrémente et on met à jour le champ compteur
ainsi que la date et l'heure actuelle
*/
$nombre = ++ $ligne[nombre];
$req_maj="UPDATE compteur SET nombre='$nombre', date=now(), heure=curtime() WHERE page='$page' ";
mysql_query($req_maj,$connexion);
// echo "page $page : $nombre ème accès le $ligne[date] à $ligne[heure]";
}
elseif ($nb == 0) {
/* sinon on insère un nouvel enregistrement avec ce nom,
* son compteur initialisé à 1
* ainsi que la date et l'heure actuelle
*/
$req_ins="INSERT INTO compteur (page,nombre,date,heure) VALUES ('$page',1,now(),curtime() )";
mysql_query($req_ins,$connexion);
// echo "page $page : 1er accès";
}
?>
5-ensuite j'ai creer le fichier "params.inc.php" voici son code:
<?
$hote="127.0.0.1";
$login="root";
$mdp="";
$bd="basecompteur";
?>
6-enfin j'ai creer le fichier "test.php" voici son code:
<? require("compteur.php"); ?>
pour tester ton compteur tu dois ouvrir ton local web puis choisir le dossier compteur et cliquer sur le fichier test.php
le resultat sera une page vide mais pour voir si ton compteur marche tu dois ouvrir ta base de donnees et l'enregistrement ajouté dans la table....
Si tu veux que la page "test.php" affiche le nombre de visite tu dois y ajouter un morceau de code , je peux t'aider a le faire si tu veux
bonne chance
1-j'ai creer une nouvelle base de donner ayant comme nom "basecompteur"
2-j'ai utiliser cette requete pour creer une nouvelle table:
# Structure de la table `compteur`
CREATE TABLE compteur (
id smallint(6) NOT NULL auto_increment,
page varchar(255) NOT NULL default '',
nombre smallint(6) NOT NULL default '0',
date date NOT NULL default '0000-00-00',
heure time NOT NULL default '00:00:00',
PRIMARY KEY (id)
) TYPE=MyISAM;
3-j'ai creer le repertoir "compteur" dans le dossier "www"
4-dans ce repertoir j'ai creer le fichier "Compteur.php" voici son code:
<?
/* inclure le fichier de paramètres
* et se connecter à la base de données
*/
require ("params.inc.php");
$connexion= mysql_connect($hote,$login,$mdp);
mysql_select_db($bd, $connexion);
// récupère le nom complet (précédé du chemin) du fichier de la page en cours d'exécution
$page=$PHP_SELF;
// exécute une requête pour chercher ce nom dans la table
$req="select * from compteur where page='$page'";
$resultat=mysql_query($req,$connexion);
$nb= mysql_num_rows($resultat);
// si le nom du fichier se trouve déjà dans la table,
if ($nb == 1) {
$ligne= mysql_fetch_array($resultat);
/* alors on récupère la valeur du champ compteur,
on l'incrémente et on met à jour le champ compteur
ainsi que la date et l'heure actuelle
*/
$nombre = ++ $ligne[nombre];
$req_maj="UPDATE compteur SET nombre='$nombre', date=now(), heure=curtime() WHERE page='$page' ";
mysql_query($req_maj,$connexion);
// echo "page $page : $nombre ème accès le $ligne[date] à $ligne[heure]";
}
elseif ($nb == 0) {
/* sinon on insère un nouvel enregistrement avec ce nom,
* son compteur initialisé à 1
* ainsi que la date et l'heure actuelle
*/
$req_ins="INSERT INTO compteur (page,nombre,date,heure) VALUES ('$page',1,now(),curtime() )";
mysql_query($req_ins,$connexion);
// echo "page $page : 1er accès";
}
?>
5-ensuite j'ai creer le fichier "params.inc.php" voici son code:
<?
$hote="127.0.0.1";
$login="root";
$mdp="";
$bd="basecompteur";
?>
6-enfin j'ai creer le fichier "test.php" voici son code:
<? require("compteur.php"); ?>
pour tester ton compteur tu dois ouvrir ton local web puis choisir le dossier compteur et cliquer sur le fichier test.php
le resultat sera une page vide mais pour voir si ton compteur marche tu dois ouvrir ta base de donnees et l'enregistrement ajouté dans la table....
Si tu veux que la page "test.php" affiche le nombre de visite tu dois y ajouter un morceau de code , je peux t'aider a le faire si tu veux
bonne chance
apparament il y a une faute de syntax dans le fichier "Compteur.php" . Envoi nous le code que tu a saisie dans ce fichier, on pourra peut etre t aidé.......
a+
a+
fredy7
Messages postés
41
Date d'inscription
dimanche 29 juillet 2007
Statut
Membre
Dernière intervention
19 juillet 2010
277
30 juil. 2007 à 22:09
30 juil. 2007 à 22:09
bonjour,
j'ai tiré le code de cette page
http://www.ac-creteil.fr/util/programmation/scripts/compteurs.php
c'est le numéro 3 :Compter les accès aux pages individuelles
merci de votre aide
j'ai tiré le code de cette page
http://www.ac-creteil.fr/util/programmation/scripts/compteurs.php
c'est le numéro 3 :Compter les accès aux pages individuelles
merci de votre aide
zefoots
Messages postés
146
Date d'inscription
samedi 9 juin 2007
Statut
Membre
Dernière intervention
11 septembre 2007
62
30 juil. 2007 à 23:23
30 juil. 2007 à 23:23
Bonjour,
ça pourrait pas venir du caractère : (deux points)
ça pourrait pas venir du caractère : (deux points)
include_path='.:/data/apache/php/mmp_lib'au début de l'instruction require ?
fredy7
Messages postés
41
Date d'inscription
dimanche 29 juillet 2007
Statut
Membre
Dernière intervention
19 juillet 2010
277
4 août 2007 à 22:43
4 août 2007 à 22:43
bonsoir,
j'ai suivi toute les étapes que t'as données, j'ai testé ,l'enregistrement est resté à 1.
en tout cas j'aimerais bien éffectivement que tu m'aides pour que la page "test.php" affiche le nombre de visite,
merci bien tunisien pour tes réponses
j'ai suivi toute les étapes que t'as données, j'ai testé ,l'enregistrement est resté à 1.
en tout cas j'aimerais bien éffectivement que tu m'aides pour que la page "test.php" affiche le nombre de visite,
merci bien tunisien pour tes réponses
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fredy7
Messages postés
41
Date d'inscription
dimanche 29 juillet 2007
Statut
Membre
Dernière intervention
19 juillet 2010
277
4 août 2007 à 23:19
4 août 2007 à 23:19
c'est bon ça marche tunisien, il comptait qu'une fois la page.
dis moi comment faire pour afficher le nombre de visite.
si c'est pas trop demandé, j'aimerais te demander encore un dernier truc, est ce que tu peux modifier le script afin que le nombre de visite revient à 0 après 50, c'est à dire qu'il recompte de 0 à chaque fois qu'il arrive à 50 .
merci encore
dis moi comment faire pour afficher le nombre de visite.
si c'est pas trop demandé, j'aimerais te demander encore un dernier truc, est ce que tu peux modifier le script afin que le nombre de visite revient à 0 après 50, c'est à dire qu'il recompte de 0 à chaque fois qu'il arrive à 50 .
merci encore
salut fredy7
je vais essyer de faire le 2 en 1:
Pour que "test.php" affiche le nombre de visites et que ce nombre revient a 1 automatiquement quand il arrive a 50 tu dois modifier le fichier "Compteur.php". Pour eviter les problemes, je te donne le code complet de ce fichier ,t a qu a supprimer l'ancien "compteur.php" et le remplacer par celui-ci:
<?
/* inclure le fichier de paramètres
* et se connecter à la base de données
*/
require ("params.inc.php");
$connexion= mysql_connect($hote,$login,$mdp);
mysql_select_db($bd, $connexion);
// récupère le nom complet (précédé du chemin) du fichier de la page en cours d'exécution
$page=$PHP_SELF;
// exécute une requête pour chercher ce nom dans la table
$req="select * from compteur where page='$page'";
$resultat=mysql_query($req,$connexion);
$nb= mysql_num_rows($resultat);
// si le nom du fichier se trouve déjà dans la table,
if ($nb == 1) {
$ligne= mysql_fetch_array($resultat);
/* alors on récupère la valeur du champ compteur,
on l'incrémente et on met à jour le champ compteur
ainsi que la date et l'heure actuelle
*/
$nombre = ++ $ligne[nombre];
// echo "page $page : $nombre ème accès le $ligne[date] à $ligne[heure]";
if ($nombre>50)
{$req_maj="UPDATE compteur SET nombre=1, date=now(), heure=curtime() WHERE page='$page' ";
echo "Le nombre de visite est: 1";}
else
{
$req_maj="UPDATE compteur SET nombre='$nombre', date=now(), heure=curtime() WHERE page='$page' ";
echo "Le nombre de visite est: ".$nombre;
}
mysql_query($req_maj,$connexion);
}
elseif ($nb == 0) {
/* sinon on insère un nouvel enregistrement avec ce nom,
* son compteur initialisé à 1
* ainsi que la date et l'heure actuelle
*/
$req_ins="INSERT INTO compteur (page,nombre,date,heure) VALUES ('$page',1,now(),curtime() )";
mysql_query($req_ins,$connexion);
// echo "page $page : 1er accès";
echo "Le nombre de visite est: 1";
}
?>
je vais essyer de faire le 2 en 1:
Pour que "test.php" affiche le nombre de visites et que ce nombre revient a 1 automatiquement quand il arrive a 50 tu dois modifier le fichier "Compteur.php". Pour eviter les problemes, je te donne le code complet de ce fichier ,t a qu a supprimer l'ancien "compteur.php" et le remplacer par celui-ci:
<?
/* inclure le fichier de paramètres
* et se connecter à la base de données
*/
require ("params.inc.php");
$connexion= mysql_connect($hote,$login,$mdp);
mysql_select_db($bd, $connexion);
// récupère le nom complet (précédé du chemin) du fichier de la page en cours d'exécution
$page=$PHP_SELF;
// exécute une requête pour chercher ce nom dans la table
$req="select * from compteur where page='$page'";
$resultat=mysql_query($req,$connexion);
$nb= mysql_num_rows($resultat);
// si le nom du fichier se trouve déjà dans la table,
if ($nb == 1) {
$ligne= mysql_fetch_array($resultat);
/* alors on récupère la valeur du champ compteur,
on l'incrémente et on met à jour le champ compteur
ainsi que la date et l'heure actuelle
*/
$nombre = ++ $ligne[nombre];
// echo "page $page : $nombre ème accès le $ligne[date] à $ligne[heure]";
if ($nombre>50)
{$req_maj="UPDATE compteur SET nombre=1, date=now(), heure=curtime() WHERE page='$page' ";
echo "Le nombre de visite est: 1";}
else
{
$req_maj="UPDATE compteur SET nombre='$nombre', date=now(), heure=curtime() WHERE page='$page' ";
echo "Le nombre de visite est: ".$nombre;
}
mysql_query($req_maj,$connexion);
}
elseif ($nb == 0) {
/* sinon on insère un nouvel enregistrement avec ce nom,
* son compteur initialisé à 1
* ainsi que la date et l'heure actuelle
*/
$req_ins="INSERT INTO compteur (page,nombre,date,heure) VALUES ('$page',1,now(),curtime() )";
mysql_query($req_ins,$connexion);
// echo "page $page : 1er accès";
echo "Le nombre de visite est: 1";
}
?>
fredy7
Messages postés
41
Date d'inscription
dimanche 29 juillet 2007
Statut
Membre
Dernière intervention
19 juillet 2010
277
5 août 2007 à 23:32
5 août 2007 à 23:32
bonsoir,
merci beaucoup tunisien ,ça marche très bien. je constate juste que de temps en temps ça m'affiche le même nombre de visite 2 fois consécutive, ça arrive 2 ou 3 fois dans le cycle de 50. ce qui fait qu'on arrivant à 50 le nombre réel de visite est 52 ou 53.
j'espère que je pourrai te poser d'autres questions quand j'en aurai.
merci encore d'avoir pris de ton temps pour m'aider.
merci beaucoup tunisien ,ça marche très bien. je constate juste que de temps en temps ça m'affiche le même nombre de visite 2 fois consécutive, ça arrive 2 ou 3 fois dans le cycle de 50. ce qui fait qu'on arrivant à 50 le nombre réel de visite est 52 ou 53.
j'espère que je pourrai te poser d'autres questions quand j'en aurai.
merci encore d'avoir pris de ton temps pour m'aider.
Salut fredy7
Voila mon email:
tanrtn@yahoo.fr
contact moi si tu a besoin d'aide, je ferai de mon mieux....
a+
Voila mon email:
tanrtn@yahoo.fr
contact moi si tu a besoin d'aide, je ferai de mon mieux....
a+
Bonjour,
J'ai fait comme Tunisien a dit, mais sa ne m'affiche pas le nombre de visites!
Comment faire pour qu'il s'affiche?
Merci d'avance
J'ai fait comme Tunisien a dit, mais sa ne m'affiche pas le nombre de visites!
Comment faire pour qu'il s'affiche?
Merci d'avance
fredy7
Messages postés
41
Date d'inscription
dimanche 29 juillet 2007
Statut
Membre
Dernière intervention
19 juillet 2010
277
8 oct. 2007 à 00:36
8 oct. 2007 à 00:36
bonjour,
je pense que la réponse est dans:
echo "Le nombre de visite est: 1";
tunisien va peut être te répondre mieuc que moi
bonne chance
je pense que la réponse est dans:
echo "Le nombre de visite est: 1";
tunisien va peut être te répondre mieuc que moi
bonne chance
fredy7
Messages postés
41
Date d'inscription
dimanche 29 juillet 2007
Statut
Membre
Dernière intervention
19 juillet 2010
277
8 oct. 2007 à 00:43
8 oct. 2007 à 00:43
essaie ça
j'ai enlevé les // devant chaque echo
dis moi si ça marche
<?
/* inclure le fichier de paramètres
* et se connecter à la base de données
*/
require ("params.inc.php");
$connexion= mysql_connect($hote,$login,$mdp);
mysql_select_db($bd, $connexion);
// récupère le nom complet (précédé du chemin) du fichier de la page en cours d'exécution
$page=$PHP_SELF;
// exécute une requête pour chercher ce nom dans la table
$req="select * from compteur where page='$page'";
$resultat=mysql_query($req,$connexion);
$nb= mysql_num_rows($resultat);
// si le nom du fichier se trouve déjà dans la table,
if ($nb == 1) {
$ligne= mysql_fetch_array($resultat);
/* alors on récupère la valeur du champ compteur,
on l'incrémente et on met à jour le champ compteur
ainsi que la date et l'heure actuelle
*/
$nombre = ++ $ligne[nombre];
$req_maj="UPDATE compteur SET nombre='$nombre', date=now(), heure=curtime() WHERE page='$page' ";
mysql_query($req_maj,$connexion);
echo "page $page : $nombre ème accès le $ligne[date] à $ligne[heure]";
}
elseif ($nb == 0) {
/* sinon on insère un nouvel enregistrement avec ce nom,
* son compteur initialisé à 1
* ainsi que la date et l'heure actuelle
*/
$req_ins="INSERT INTO compteur (page,nombre,date,heure) VALUES ('$page',1,now(),curtime() )";
mysql_query($req_ins,$connexion);
echo "page $page : 1er accès";
}
?>
j'ai enlevé les // devant chaque echo
dis moi si ça marche
<?
/* inclure le fichier de paramètres
* et se connecter à la base de données
*/
require ("params.inc.php");
$connexion= mysql_connect($hote,$login,$mdp);
mysql_select_db($bd, $connexion);
// récupère le nom complet (précédé du chemin) du fichier de la page en cours d'exécution
$page=$PHP_SELF;
// exécute une requête pour chercher ce nom dans la table
$req="select * from compteur where page='$page'";
$resultat=mysql_query($req,$connexion);
$nb= mysql_num_rows($resultat);
// si le nom du fichier se trouve déjà dans la table,
if ($nb == 1) {
$ligne= mysql_fetch_array($resultat);
/* alors on récupère la valeur du champ compteur,
on l'incrémente et on met à jour le champ compteur
ainsi que la date et l'heure actuelle
*/
$nombre = ++ $ligne[nombre];
$req_maj="UPDATE compteur SET nombre='$nombre', date=now(), heure=curtime() WHERE page='$page' ";
mysql_query($req_maj,$connexion);
echo "page $page : $nombre ème accès le $ligne[date] à $ligne[heure]";
}
elseif ($nb == 0) {
/* sinon on insère un nouvel enregistrement avec ce nom,
* son compteur initialisé à 1
* ainsi que la date et l'heure actuelle
*/
$req_ins="INSERT INTO compteur (page,nombre,date,heure) VALUES ('$page',1,now(),curtime() )";
mysql_query($req_ins,$connexion);
echo "page $page : 1er accès";
}
?>
Utilisateur anonyme
8 oct. 2007 à 20:11
8 oct. 2007 à 20:11
Bonjour,
En effet sa marche, mais sa ne marche que pour une page, alor que moi je veut que le script marche page par page!
comment faire svp?
En effet sa marche, mais sa ne marche que pour une page, alor que moi je veut que le script marche page par page!
comment faire svp?
Utilisateur anonyme
10 oct. 2007 à 18:12
10 oct. 2007 à 18:12
Bonjour,
C'est ce que j'ai fait, mais par exemple je l'avait mit sur une seule page le compteur, et il en était à 13 hits, je le met sur une autre page, et je la visite desuite après, et sa me met 14hits.
Donc je voudrai savoir comment faire pour que le compteur soit unique à une seule page!
C'est ce que j'ai fait, mais par exemple je l'avait mit sur une seule page le compteur, et il en était à 13 hits, je le met sur une autre page, et je la visite desuite après, et sa me met 14hits.
Donc je voudrai savoir comment faire pour que le compteur soit unique à une seule page!
fredy7
Messages postés
41
Date d'inscription
dimanche 29 juillet 2007
Statut
Membre
Dernière intervention
19 juillet 2010
277
11 oct. 2007 à 00:22
11 oct. 2007 à 00:22
salut,
j'ai essayé comme a dit tunisien ça marche.
un compteur propre à chaque page où tu mets require("compteur.php);
j'ai essayé comme a dit tunisien ça marche.
un compteur propre à chaque page où tu mets require("compteur.php);
Utilisateur anonyme
15 oct. 2007 à 21:25
15 oct. 2007 à 21:25
J'ai trouvé pourquoi sa ne marche pas!
J'utilise un CMS, et la page, c'est viewpage.php, et comme c'est juste l'id de la page qui change, et non la page, sa ne me fait pas un compteur différent!
Quelqu'un saurait-il comment faire pour mon cas?
Merci d'avance
J'utilise un CMS, et la page, c'est viewpage.php, et comme c'est juste l'id de la page qui change, et non la page, sa ne me fait pas un compteur différent!
Quelqu'un saurait-il comment faire pour mon cas?
Merci d'avance