Page 1 sur 1

Compter les enregistrements

Posté : 15 févr. 2013, 00:12
par spifspaf
Bonjours à tous
après avoir cherché un bon moment et étant débutant en php
je cherche à savoir comment je peux compter des enregistrements dans une base sql
sachant que je récupère les ip des visiteurs du site et les pages visitées

ce que je recherche à faire :
c'est comptabiliser le nombre total de pages visitées par adresse ip en évitant les doublons d'ip
genre :

ip 0.0.0.1 visite la page a
ip 0.0.0.1 visite la page b
ip 0.0.0.10 visite la page a
ip 0.0.0.10 visite la page b
ip 0.0.0.11 visite la page a

j'arrive a éviter les doublons d'ip avec un SELECT DISTINCT mais je ne trouve pas comment comptabiliser le total des pages visitées par ip
genre à l'affichage :
ip 0.0.0.1 à visité 2 pages
ip 0.0.0.10 à visité 2 pages
ip 0.0.0.11 à visité 1 page

voici un bout mon code pour la requête et l'affichage :

Code : Tout sélectionner

<?php include'menu_filtre_stats_site.php'; ?> <br><br>Les stats: Filtre par ip<br /><br /> <?php // on se connecte à notre base $base = mysql_connect ('****', '****', '****'); mysql_select_db ('****', $base); // on prépare une requête permettant de calculer le nombre total d'éléments qu'il faudra afficher sur nos différentes pages $sql = 'SELECT count(*) FROM traceur_site '; // on exécute cette requête $resultat = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); // on récupère le nombre d'éléments à afficher $nb_total = mysql_fetch_array($resultat); // on teste si ce nombre de vaut pas 0 if (($nb_total = $nb_total[0]) == 0) { echo 'Aucune réponse trouvée'; } else { echo '<table bgcolor="#FFFFFF">'."\n"; // première ligne on affiche echo '<tr>'; echo '<td bgcolor="#669999"><b><u>&nbsp;&nbsp;Ip du visiteur&nbsp;&nbsp;</u></b></td>'; echo '<td bgcolor="#669999"><b><u>&nbsp;&nbsp;Page Visitée ou nombre(s) de connexion(s)&nbsp;&nbsp;</u></b></td>'; echo '</tr>'."\n"; // sinon, on regarde si la variable $debut (le x de notre LIMIT) n'a pas déjà été déclarée, et dans ce cas, on l'initialise à 0 if (!isset($_GET['debut'])) $_GET['debut'] = 0; $nb_affichage_par_page = 10; // Préparation de la requête avec le LIMIT $sql = 'SELECT DISTINCT ip_site FROM traceur_site ORDER BY ip_site DESC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page; // on exécute la requête $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); // on va scanner tous les tuples un par un while ($data = mysql_fetch_array($req)) { // on affiches les résultats dans la <table> echo '<tr>'; echo '<td bgcolor="#CCCCCC">&nbsp;&nbsp;', htmlentities(trim($data['ip_site'])) , '&nbsp;&nbsp;</td>'; /// echo '<td bgcolor="#CCCCCC">&nbsp;&nbsp;', htmlentities(trim($data['ip_site'])) , '&nbsp;&nbsp;</td>'; echo '</tr>'."\n"; } // on libère l'espace mémoire alloué pour cette requête mysql_free_result ($req); echo '</table><br />'; // on affiche enfin notre barre echo '<span class="gras"> page :'.barre_navigation($nb_total, $nb_affichage_par_page, $_GET['debut'], 5).'</span>'; } // on libère l'espace mémoire alloué pour cette requête mysql_free_result ($resultat); // on ferme la connexion à la base de données. mysql_close (); ?>
merci d'avance pour l'aide :D

Re: Compter les enregistrements

Posté : 15 févr. 2013, 12:47
par damien_55
essaie avec ça
$nbre_pages_visit= mysql_num_rows(mysql_query($ip));
$ip="ton SELECT DISTINCT" 

Re: Compter les enregistrements

Posté : 15 févr. 2013, 18:53
par spifspaf
j'ai testé mais cela marche pas

par contre j'ai trouvé la soluce :

Code : Tout sélectionner

$sql = 'SELECT id_site,ip_site,COUNT( page_site ) as page_site FROM traceur_site GROUP BY ip_site ';
en utilisant GROUP BY :D