PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : MySQL, PostgreSQL, etc... » Compter les enregistrements » 16-02-2013 20:29:08

ben pour résumer ( si ça peut être plus clair ) ma page ou il y a le lien : sachant que j'utilise prettyphoto comme lightbox
coulissants.php

    <script src="js/jquery.min.js" type="text/javascript"></script>
    <!--script src="js/jquery.lint.js" type="text/javascript" charset="utf-8"></script-->
    <link rel="stylesheet" href="css/prettyPhoto.css" type="text/css" media="screen" title="prettyPhoto main stylesheet" charset="utf-8" />
    <script src="js/jquery.prettyPhoto.js" type="text/javascript" charset="utf-8"></script>

 <script type="text/javascript" charset="utf-8">
$(document).ready(function(){
  $("a[rel^='prettyPhoto']").prettyPhoto({animation_speed:'normal',slideshow:3000, autoplay_slideshow: false, social_tools:false,deeplinking: false});
});
</script>
<?php
include 'config/config.php';
$page_visite='Page gamme coulissants';
 //date
$date = date("Y-m-d" );
$heure = Date("H:i:s");

//-- Fonction de récupération de l'adresse IP du visiteur
function get_ip()
{
    if ( isset ( $_SERVER['HTTP_X_FORWARDED_FOR'] ) )
    {
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    elseif ( isset ( $_SERVER['HTTP_CLIENT_IP'] ) )
    {
        $ip  = $_SERVER['HTTP_CLIENT_IP'];
    }
    else
    {
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}
///echo 'Votre adresse IP est : ' . get_ip ();
$ip_ok=''. get_ip ();
/////// enregistrement de l'ip

        $sql = "insert into traceur_site(id_site, date, ip_site,page_site,heure) VALUES('','$date','$ip_ok','$page_visite','$heure')";
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
        mysql_close ();
?>
<?php
   echo'
    <td class="below_header"><div align="center"><font face="Times New Roman" size="6" color="#FF0000">Les Coulissants </font></div></td>
    <td class="shadow_right">&nbsp;</td>
  </tr>
  <tr>
    <td class="shadow_left">&nbsp;</td>
    <td class="main_content_box"><table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td class="left_content"></td>
        <td class="body_content_gamme"><div align="left"><a href="affiche_pdf.php?affiche=topaze&page=affichage_pdf_topaze_gbi&add_ip='
.$ip_ok.'&date='.$date.'&heure='.$heure.'?iframe=true&amp;width=80%&amp;height=99%" rel="prettyPhoto" class="lien2" >Les Coulissants Topaze </a> <font face="Times New Roman" size="3" color="#FFFFFF">( format Pdf )</font> <br/><br/>
                                               <a href="affiche_pdf.php?affiche=soleal_gy&page=affichage_pdf_soleal_gy&add_ip='
.$ip_ok.'&date='.$date.'&heure='.$heure.'?iframe=true&amp;width=80%&amp;height=99%" rel="prettyPhoto" class="lien2" >Les Coulissants Soleal </a> <font face="Times New Roman" size="3" color="#FFFFFF">( format Pdf )</font><br/><br/>
                           <a href="affiche_pdf.php?affiche=lumeal_ga&page=affichage_pdf_lumeal_ga&add_ip='
.$ip_ok.'&date='.$date.'&heure='.$heure.'?iframe=true&amp;width=80%&amp;height=99%" rel="prettyPhoto" class="lien2" >Les Coulissants Luméal </a><font face="Times New Roman" size="3" color="#FFFFFF">( format Pdf )</font>
        </td>'
;
        ?>

et ma page affiche.php  ( du moins une partie )

    <?php
    include 'config/config.php';
    /// recuperation des variables
    $aff = $_GET['affiche'];
    $ip_ok = $_GET['add_ip'];
    $date = $_GET['date'];
    $page_visite = $_GET['page'];
    $heure = $_GET['heure'];
     
     
    if($aff == topaze){
     
    // Vous voulez afficher un pdf
    header ( 'Content-type: application/pdf' );
     
    // Il sera nommé downloaded.pdf
    //header ( 'Content-Disposition: attachment; filename="downloaded.pdf"' );
     
    // Le source du PDF original.pdf
    readfile ( 'doc_com_technal/doc_topaze.pdf' );
     
    $sql = "insert into traceur_site(id_site, date, ip_site,page_site,heure) VALUES('','$date','$ip_ok','$page_visite','$heure')";
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    mysql_close ();
     
     
    }
     
    elseif($aff == soleal_gy){
     
     
    // Vous voulez afficher un pdf
    header ( 'Content-type: application/pdf' );
     
    // Il sera nommé downloaded.pdf
    //header ( 'Content-Disposition: attachment; filename="downloaded.pdf"' );
     
    // Le source du PDF original.pdf
    readfile ( 'doc_com_technal/doc_gy_soleal.pdf' );
    }
    else
    {
    echo 'erreur le fichier inexistant ';
    }
     
     
    ?>

#2 Re : MySQL, PostgreSQL, etc... » Compter les enregistrements » 16-02-2013 20:29:08

oky merci pour l'info smile

par contre je suis confronté à un autre problème qui est le suivant

sur le site je propose un visualisation de fichiers pdf dans une ligthbox par contre je passe par une page ( indépendante ) pour éviter d'avoir l'url du répertoire par la visiteur

et je désire tracer les affichages des pdf des utilisateurs

le problème c'est que ma requête s’exécute deux fois ( elle enregistre deux passage )

un bout du code de ma page d'affichage :

<?php
include 'config/config.php';
/// recuperation des variables
$aff = $_GET['affiche'];
$ip_ok = $_GET['add_ip'];
$date = $_GET['date'];
$page_visite = $_GET['page'];
$heure = $_GET['heure'];


if($aff == topaze){

// Vous voulez afficher un pdf
header ( 'Content-type: application/pdf' );

// Il sera nommé downloaded.pdf
//header ( 'Content-Disposition: attachment; filename="downloaded.pdf"' );

// Le source du PDF original.pdf
readfile ( 'doc_com_technal/doc_topaze.pdf' );

        $sql = "insert into traceur_site(id_site, date, ip_site,page_site,heure) VALUES('','$date','$ip_ok','$page_visite','$heure')";
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
        mysql_close ();


}

elseif($aff == soleal_gy){


// Vous voulez afficher un pdf
header ( 'Content-type: application/pdf' );

// Il sera nommé downloaded.pdf
//header ( 'Content-Disposition: attachment; filename="downloaded.pdf"' );

// Le source du PDF original.pdf
readfile ( 'doc_com_technal/doc_gy_soleal.pdf' );
}
else
{
echo 'erreur le fichier inexistant ';
}


?>

#3 Re : MySQL, PostgreSQL, etc... » Compter les enregistrements » 16-02-2013 20:29:08

Chalut smile

Merci pour ta réponse j'ai fait ma recherche et en effet ça colle pas mal .. du moins ça marche avec cette requête :

$sql = 'SELECT ip_site,COUNT( page_site ) as page_site FROM traceur_site GROUP BY ip_site ';

ip_site = le stockage des ip
page_site = les pages visitées

mici smile

( j'avoue que je comprends pas le as .... )

#4 MySQL, PostgreSQL, etc... » Compter les enregistrements » 16-02-2013 20:29:08

spifspaf
Réponses : 6

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 :

<?php
 include'menu_filtre_stats_site.php';
?>

<br><br>Les stats: Filtre par ip


<?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 !
'.$sql.'
'.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 !
'.$sql.'
'.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>
';

   // 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 ();

?>

Pied de page des forums

Propulsé par FluxBB