Mysql / PHP donné a afficher.

Résolu/Fermé
Mackdolphin Messages postés 28 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 28 juillet 2009 - 23 oct. 2007 à 11:33
Mackdolphin Messages postés 28 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 28 juillet 2009 - 23 oct. 2007 à 18:06
Bonjour,
J'espere que je serais clair.

Voila jai un léger probleme, je ne suis pas très doué alors je vous prie de ne pas m'agresser

Voila jai installé 3 compteur de visites sur mon site chacun d'eux est indépendant et sont affiché dans 3 page different du site. Chacun d'eux recupere les ip et les stock sur la base de donné pour compter les visites de chaque visiteur une seule fois, pour faire un shema ca donne ca:

Page d'accueil
/.............|............\
Page1 Page2 Page3

Voila donc sur chacune des trois page il y a un compteur, et donc mon probleme je voudrais afficher en page daccueil le resultat de ces trois compteur ! mais sans influencer le nombre afficher (sinon ca ne servirait a rien de les mettre sur 3 page distinct).
En gros il faudrait que je trouve la table qui contient les resultat des compteur dans la base de donné et que je lappel dans la page daccueil.

sur ma base de donné je pense savoir ou sont stocké les resultat des compteur. conaissez vous la requete exact pour afficher les nombre indiqué dans les tables ?

12 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
23 oct. 2007 à 11:49
Bonjour,

On ne peut pas te donner de requête si tu ne nous donnes pas la structure de la table en question.
Il nous faut les champs et ce qu'ils contiennent (conceptuellement parlant)

Ensuite il faut voir ce que tu entends par "le resultat de ces trois compteurs".
Tu veux afficher les trois compteurs séparément, tu veux afficher la somme des trois, voire la somme des IP uniques sur chacun ?

Xavier
0
Mackdolphin Messages postés 28 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 28 juillet 2009 4
23 oct. 2007 à 11:57
Je veux afficher la sommes de chaqun individuellement en page daccueil par ex:

Compteur1: xxxxx visites
Compteur2: xxxxx visites
Compteur3: xxxxx visites


Les données exact:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
--------------------------------------------------
Serveur: localhost

Base de données: n_guerrede1484

Table: compteur_visite

Structure Champ:
compteur
date
time
duree
ip

Afficher:
Textes complets compteur date time duree ip
Modifier Effacer 8 2007-10-23 0 2 compteur
Modifier Effacer 0 0000-00-00 645 645 83.113.183.207.7
Modifier Effacer 0 0000-00-00 500 500 82.229.59.8
Modifier Effacer 0 0000-00-00 648 645 83.113.183.207
--------------------------------------------------
0
Mackdolphin Messages postés 28 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 28 juillet 2009 4
23 oct. 2007 à 12:00
je remet le "Afficher" car la mise en page na pas marché

compteur.....date......time...duree..........ip
8..........2007-10-23....0.......2........compteur
0..........0000-00-00..645....645.......83.113.183.207.7
0..........0000-00-00..500....500.......82.229.59.8
0..........0000-00-00..648....645.......83.113.183.207
0
Mackdolphin Messages postés 28 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 28 juillet 2009 4
23 oct. 2007 à 12:02
tien pour faire simple jai utilisé ce compteur (que jai un peu modifié mais pour la table cest la meme chose)

http://persol.free.fr/compteur_visite/
0

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

Posez votre question
Mackdolphin Messages postés 28 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 28 juillet 2009 4
23 oct. 2007 à 13:21
http://persol.free.fr/compteur_visite_simple/index.php

cest la version simplifié si tu prefere
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
23 oct. 2007 à 13:56
Le mieux serait que tu nous donnes le contenu de ce fichier :
visite/visite.php
0
Mackdolphin Messages postés 28 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 28 juillet 2009 4
23 oct. 2007 à 14:07
CONTENU DU FICHIER "VISITE.PHP"





<?
include("./visite/connect_visite.php") ;

//on recupere l adresse ip du visiteur
if($_SERVER) {
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
$adress = $_SERVER['HTTP_X_FORWARDED_FOR'];
elseif(isset($_SERVER['HTTP_CLIENT_IP']))
$adress = $_SERVER['HTTP_CLIENT_IP'];
else
$adress = $_SERVER['REMOTE_ADDR'];
}
else {
if(getenv('HTTP_X_FORWARDED_FOR'))
$adress = getenv('HTTP_X_FORWARDED_FOR');
elseif(getenv('HTTP_CLIENT_IP'))
$adress = getenv('HTTP_CLIENT_IP');
else
$adress = getenv('REMOTE_ADDR');
}

//on verifie si on a pas changé de jour et on recupere le chiffre du compteur
$sql="select * from compteur_visite where ip='compteur'";
$res=mysql_query($sql, $db);
$ligne = mysql_fetch_object ($res);
$date = date("Y-m-d");

//on convertit l heure courante en minute d une journee
$time=(date("H") * 60) + date("i");

//on recupere le compteur courant et le temps t
$compteur=$ligne->compteur;
$t=$ligne->time; //temps de connexion de reference
$d=$ligne->duree; //duree de renouvellement de reference

//on test si on a changé de jour
if ($date!="$ligne->date")
{
//on vide toutes les addresses ip enregistrées dans la table lors du changement de jour
$sql="delete from compteur_visite where ip!='compteur'";
$res=mysql_query($sql, $db) or die ("requete invalide supp ip");
//on met a jour la nouvelle date dans la table
$sql="update compteur_visite set date='$date'";
$res=mysql_query($sql, $db) or die ("requete invalide maj date");
}

//on verifie l adresse ip du visiteur et aussi son heure de passage
$sql="select * from compteur_visite where ip='$adress'";
$res=mysql_query($sql, $db) or die ("requete invalide verif ip");
$ligne = mysql_fetch_object ($res);
$num_rows =mysql_numrows ($res);
if ($num_rows==0)
{
//on enregistre l adresse ip si elle est inconnu et on incremente le compteur
$sql="insert into compteur_visite (ip,time,duree) values ('$adress','$time','$time')";
$res=mysql_query($sql, $db)or die ("requete invalide enr ip");
$compteur+=1;
$sql="update compteur_visite set compteur=$compteur where ip='compteur'";
$res=mysql_query($sql, $db) or die ("requete invalide up compt");
}
else
{
//si l'adresse ip est connu alors verifie si sa connexion precedente est superieur a la durée
//de renouvellement et si son heure de passage precedente incremente ou pas les connectés
$time1=$ligne->time; //on recupere l'heure de sa precedente connexion de notre connecté
$duree1=$ligne->duree; //on recupere l'heure de sa precedente connexion de notre connecté

// on verifie si sa derniere connexion ne date pas de plus que la duree de reference
if ($d*60<($time - ($duree1)))
{
//si la duree de reference est depassé alors notre connecté est comptablisé
//comme nouvelle visite et on met a jour sa nouvelle heure de passage
$sql="update compteur_visite set time=$time,duree=$time where ip='$adress'";
$res=mysql_query($sql, $db) or die ("requete invalide maj time");

//on cree une ligne fictive pour pouvoir le comptabilisé dans les connectés de jour
$adress1=$adress.".".$compteur;
$sql="insert into compteur_visite (ip,time,duree) values ('$adress1','$time','$time')";
$res=mysql_query($sql, $db)or die ("requete invalide enr ip");

//et on increment le compteur de visite
$compteur+=1;
$sql="update compteur_visite set compteur=$compteur where ip='compteur'";
$res=mysql_query($sql, $db) or die ("requete invalide up compt");
}
else
{
//on met a jour son heure de passage si elle est superieure a t
if ($time>(($time1)-$t))
{
$sql="update compteur_visite set time=$time where ip='$adress'";
$res=mysql_query($sql, $db) or die ("requete invalide maj time");
}
}
}


//on compte le nb de connecté de la journée
$sql="select * from compteur_visite";
$res=mysql_query($sql, $db) or die ("requete invalide compte visiteur journee");
$compteur_j=(mysql_numrows ($res))-1;

//on compte le nb de connecté
$time=$time-$t;
$sql="select * from compteur_visite where time>=$time and ip!='compteur'";
$res=mysql_query($sql, $db) or die ("requete invalide compte visisteur connecté");
$compteur_c=mysql_numrows ($res);
mysql_free_result($res);
mysql_close();
?>
0
Mackdolphin Messages postés 28 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 28 juillet 2009 4
23 oct. 2007 à 14:08
CONTENU DU FICHIER "INSTALL.PHP"





<html>
<head>
<title>installation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<?
if ($formulaire=="envoyer")
{
$texte="<?
\$mysql_host=\"$mysql_host\"; // le serveur
\$mysql_login=\"$mysql_login\"; // le login
\$mysql_pass=\"$mysql_pass\"; // mot de passe
\$mysql_dbnom=\"$mysql_dbnom\"; // nom de la base de donnee
\$db=mysql_connect(\$mysql_host,\$mysql_login,\$mysql_pass);
mysql_select_db(\$mysql_dbnom,\$db);
?>";
$fp=fopen("connect_visite.php","w");
fwrite($fp,$texte);
fclose($fp);
$date = date("Y-m-d");
include("connect_visite.php") ;
$sql="CREATE TABLE compteur_visite (
compteur double DEFAULT '0' NOT NULL,
date date DEFAULT '0000-00-00' NOT NULL,
time int(9) NOT NULL default '0',
duree int(9) NOT NULL default '0',
ip varchar(50) NOT NULL,
PRIMARY KEY (ip),
KEY compteur (compteur, date),
KEY ip (ip)
)
";
$res=mysql_query($sql, $db);
$sql="INSERT INTO compteur_visite VALUES ('$compteur', '$date', '$time', '$duree', 'compteur')";
$res=mysql_query($sql, $db);
if ($res==1)
{
include("connect_visite.php") ;
print "
<div align=\"center\">
<p> </p>
<p> </p>
<p><font size=\"5\"><i><font color=\"#FF0000\">Installation reussi </font></i></font></p>
<p><font size=\"5\" color=\"#000000\"><b><a href=\"admin.php?pass_admin=$mysql_pass\">Continuer</a></b></font></p>
</div>";
}
else
{
print "
<div align=\"center\">
<p> </p>
<p> </p>
<p><font size=\"5\"><i><font color=\"#FF0000\">Installation échouée verifier vos parametres de connexion </font></i></font></p>
<p><font size=\"5\" color=\"#000000\"><b><a href=\"install.php\">recommencer</a></b></font></p>
</div>";
}
}
else
{
print"
<p align=\"center\"><font size=\"5\"></font></p>
<form method=\"post\" action=\"install.php\">

<table border=\"1\" cellspacing=\"0\" cellpadding=\"10\" bordercolor=\"#000000\" align=\"center\">
<tr>
<td bordercolor=\"#CCCCCC\" bgcolor=\"#CCCCCC\" colspan=\"2\">
<div align=\"center\"><font size=\"5\"><i>Installation du compteur de visite</i></font></div>
</td>
</tr>
<tr bordercolor=\"#FFFFFF\">
<td>
<p><font face=\"Verdana, Arial, Helvetica, sans-serif\">Le serveur :</font></p>
</td>
<td><font face=\"Verdana, Arial, Helvetica, sans-serif\">
<input type=\"text\" name=\"mysql_host\" size=\"30\">
</font></td>
</tr>
<tr bordercolor=\"#FFFFFF\">
<td><font face=\"Verdana, Arial, Helvetica, sans-serif\">Le login :</font></td>
<td><font face=\"Verdana, Arial, Helvetica, sans-serif\">
<input type=\"text\" name=\"mysql_login\" size=\"30\">
</font></td>
</tr>
<tr bordercolor=\"#FFFFFF\">
<td><font face=\"Verdana, Arial, Helvetica, sans-serif\">le mot de passe :
</font></td>
<td><font face=\"Verdana, Arial, Helvetica, sans-serif\">
<input type=\"text\" name=\"mysql_pass\" size=\"30\">
</font></td>
</tr>
<tr bordercolor=\"#FFFFFF\">
<td><font face=\"Verdana, Arial, Helvetica, sans-serif\">le nom de la base
de donnée:</font></td>
<td><font face=\"Verdana, Arial, Helvetica, sans-serif\">
<input type=\"text\" name=\"mysql_dbnom\" size=\"30\">
</font></td>
</tr>
<tr bordercolor=\"#FFFFFF\">
<td>
<p><font face=\"Verdana, Arial, Helvetica, sans-serif\">Chiffre au compteur:</font></p>
</td>
<td bgcolor=\"#FFFFFF\">
<p><font face=\"Verdana, Arial, Helvetica, sans-serif\">
<input type=\"text\" name=\"compteur\" size=\"20\" value=\"0\">
</font></p>
</td>
</tr>
<tr bordercolor=\"#FFFFFF\">
<td><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">Durée entre deux connexions du meme visiteur <br>
ou il sera consideré comme nouveau visiteur (en heures)</font></td>
<td bgcolor=\"#FFFFFF\">
<input type=\"text\" name=\"duree\" size=\"5\" value=\"24\">
</td>
</tr>
<tr bordercolor=\"#FFFFFF\">
<td><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">Nombre de
minutes ou le visiteur <br>
sera consideré comme connecté (en minutes)</font></td>
<td bgcolor=\"#FFFFFF\">
<input type=\"text\" name=\"time\" size=\"5\" value=\"10\">
</td>
</tr>
<tr bordercolor=\"#FFFFFF\">
<td colspan=\"2\">
<input type=\"hidden\" name=\"formulaire\" value=\"envoyer\">
La validation du formulaire va creer une table dans votre base de<br>
donnée nommé <b>compteur_visite </b>et enregistrer vos parametres
de<br>
connexion dans le fichier <b>connect_visite.php</b></td>
</tr>
</table>
<p align=\"center\">
<input type=\"submit\" name=\"Submit\" value=\" Envoyer \">
</p>
</form>";
}
?>
<p> </p>
</body>
</html>
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
23 oct. 2007 à 17:27
Bonjour,

Alors, voilà ce que tu dois placer au début de ta page d'accueil :
<?
include("./visite/connect_visite.php") ; 

//Compteur total :
$sql="select * from compteur_visite where ip='compteur'";
$res=mysql_query($sql, $db);
$ligne = mysql_fetch_object ($res);

//on recupere le compteur courant
$compteur=$ligne->compteur; 

//Compteur quotidien
$sql="select * from compteur_visite";
$res=mysql_query($sql, $db) or die ("requete invalide compte visiteur journee");
$compteur_j=(mysql_numrows ($res))-1;

mysql_free_result($res);
mysql_close();
?>
Ensuite, tu peux appeler les variables $compteur et $compteur_j.
Par contre, tu as trois compteurs, et je ne sais pas comment tu as fais pour les différencier, donc je te laisse faire la même chose pour cette petite adaptation.

Xavier
0
Mackdolphin Messages postés 28 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 28 juillet 2009 4
23 oct. 2007 à 17:37
mais je veux juste afficher le nombre de visite qu'ils ont produit, je ne veux pas que la page daccueil influs sur le nombre total de ces visites !

Apparement ton code influencerais ce resultat non ? je veux juste une confirmation avant dappliquer cette solution, je te remercie de ton aide !
0
Mackdolphin Messages postés 28 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 28 juillet 2009 4
23 oct. 2007 à 17:41
je vien de tester pour voir ce que ca ferait, jai mis le code et rien ne saffiche ... comme si il ne trouvait rien.
0
Mackdolphin Messages postés 28 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 28 juillet 2009 4
23 oct. 2007 à 18:06
Ton code marche parfaitement !

je l'ai complété de cette facon:

<?
include("./visite/connect_visite.php") ;

//Compteur total :
$sql="select * from compteur_visite where ip='compteur'";
$res=mysql_query($sql, $db);
$ligne = mysql_fetch_object ($res);

//on recupere le compteur courant
$compteur=$ligne->compteur;

//Compteur quotidien
$sql="select * from compteur_visite";
$res=mysql_query($sql, $db) or die ("requete invalide compte visiteur journee");
$compteur_j=(mysql_numrows ($res))-1;

mysql_free_result($res);
mysql_close();

$content .= "$compteur";

?>
0