Titre: Requête MySQL en fonction de la date
Posté par: calenfeaion le le 22-06-2006 a 15:04:55
Bonjour à tous,
J'ai un problème qui pour une fois n'est pas une erreur quelconque mais plutôt sur la manière de si prendre.
Je m'explique : En faite, j'aimerais sélectionner des entrées dans ma base de données en fonction de leur date, par exemple, sélectionné toutes les entrées qui date d'aujourd'hui, de ce mois-ci, ou de cette année.
Le tout serais dans une fonction qui s'utiliserais comme ceci : requete_en_fonction_de('mois');
Auriez-vous une idée de comment si prendre ?
Voilà, j'espere avoir été assez clair, Calen
EDIT: Faute ortho + question |
Titre: Re:Requête MySQL en fonction de la date
Posté par: calenfeaion le le 22-06-2006 a 20:52:15
Re
Bon, j'ai trouvé finallement, je préviens: la méthode est un peu lourde, mais je compte faire l'optimisation par après. Donc si vous avez des conseils pour alléger, je suis preneur :D
En faite, le script est un compteur, et cette partie ce charge de l'affichage, donc, on peut sélectionner les visiteurs par période ( jour, mois et année )
La fonction renvoi alors sous forme d'un tableau : - Le nombre de visiteurs total pendant la période ( jour, mois et année ) - Le nombre de pages affichés pendant la période ( jour, mois et année ) - Le nombre de visiteurs connectés - Le nombre de visiteurs connectés sur la même page que l'internaute
Code:
function affiche_internaute($periode, $page_actuel) { # Cette fonction permet d'affiche les resultats se trouvant dans la base de # donnee. Elle rends possible l'affichage des stats par jour, mois, annee # avec les types comme affichage du nbrs de visiteur, pages, etc... global $erreurs; # Verifie que les parametres passe en argument sont correct if(!($periode == 'annee' || $periode == 'mois' || $periode == 'jour')) { return 'Les parametres ne sont pas correct !'; } else { // Les parametres sont ok, on continue # Adapte la requete MySQL a la periode desire switch($periode) { case 'jour': $periode_script = date('d/m/Y'); $periode_mysql = '%d/%m/%Y'; break; case 'mois': $periode_script = date('m/Y'); $periode_mysql = '%m/%Y'; break; case 'annee': $periode_script = date('Y'); $periode_mysql = '%Y'; break; } # Cree la requete MySQL de selection des visiteurs $rq_affiche = "SELECT page_actuel, nbrs_pages, duree FROM calen_visite2 WHERE DATE_FORMAT(date, '$periode_mysql')='$periode_script'"; # Connexion a la base de donne require('./Config/mysql_connect.php'); # Execution de la requete $result_affiche = mysql_query($rq_affiche); # Clos de la connexion mysql_close(); # Verification de la requete if(!($result_affiche)) { // La requete a foirer, on affiche un message $erreurs .= 'Erreur MySQL N003'; } else { // La requete est ok, on continue # Initialisation des variables $nbrs_pages = 0; $nbrs_connectes = 0; $nbrs_meme_pages = 0; # Calcul du nombre de visiteur(s) repondant a la requete $nbrs_visiteurs = mysql_num_rows($result_affiche); # Calcul des autres parametres while ($rows = mysql_fetch_assoc($result_affiche)){ # Ajout du nombre de page de l internaute au total $nbrs_pages = $nbrs_pages + $rows['nbrs_pages']; # Ajout du nombre de visiteur sur la meme page if($page_actuel == $rows['page_actuel']) { $nbrs_meme_pages = $nbrs_meme_pages +1; } # Calcul du nombre de visiteur connecte (300 sec) if(($temps_unix - $rows['duree']) < 300) { $nbrs_connectes = $nbrs_connectes +1; } } # Retourne toute les valeurs calculer global $calen_visite2; $calen_visite2=array( 'nbrs_visiteur'=>$nbrs_visiteurs, 'nbrs_pages'=>$nbrs_pages, 'nbrs_connecte'=>$nbrs_connectes, 'nbrs_meme_page'=>$nbrs_meme_pages, 'erreur'=>$erreur); } } }
|
|
Et la fonction réponds à par exemple : affiche_internaute('jour', $_SERVER['PHP_SELF']); print 'Nbrs pages: '.$calen_visite2['nbrs_pages'];
Et pour affiche les erreurs ( si on le désire) : print calen_visite2['erreur'];
Voilà voilà, Calen |
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|