Compter le nombre de requêtes
Pour calculer vos requêtes, il va falloir créer un fonction que nous allons appeller requête();. Elle
va exécuter toutes les requêtes et incrémenter une variable qui contiendra le nombre de requêtes effectuées.
Qu'est-ce qu'une requête?
Elle est effectuée à chaque fois que l'on utilise mysql_query. Si dans une page vous utilisez deux fois
mysql_query(); vous aurez effectué deux requêtes.
La fonction
C'est parti pour le code!
function requete($query){
global $nombre_requete;
Qu'est-ce que ce "global" que tu as mis devant la fonction?
Ca sert à déclarer que la fonction est... globale donc qu'elle pourra être utilisée dans toute la page, sans
problème!
Bon, continuons notre fonction!
$nombre_requete++;
return mysql_query($query);
}
Voilà, votre fonction est déjà finie. Il vous suffit de remplacer dans votre code tous les "mysql_query" par des
"requête". Heureusement, si vous utilisez Notepad++, il suffit de cliquer sur "Recherche", puis sur "Remplacer"
et de remplacer tous les "mysql_query" par "requête".
Il manque tout de même une petite chose dans ce script. Il faut initialiser la variable $nombre_requête.
$nombre_requetes = 0;
function requete($query){
global $nombre_requetes;
$nombre_requetes++;
return mysql_query($query);
}
On rappelle un peu comment fonctionne la fonction. En premier lieu, on initialise la variable $nombre_requetes.
Ensuite, on l'utilise comme variable globale dans la fonction qui se borne à l'incrémenter de 1 et à faire la
requête. Pour finir, la fonction renvoie la requête effectuée; vous n'avez plus qu'à afficher la variable
$nombre_requetes.
Maintenant, votre fonction est vraiment terminée. Pour afficher le nombre de requêtes, il suffit de taper ceci:
echo'Vous avez effectué '.$nombre_requetes.' requêtes sur cette page.';
Et si je veux afficher le nombre de requêtes qu'aura fait le visiteur pendant toute la durée de sa visite?
Pour conserver le nombre d'une page à l'autre, soit on la passe en argument du lien, ce qui serait
fort lourd, soit on utilise les sessions.
Requêtes et sessions
La première chose à faire dans la page est d'ouvrir la session comme ceci:
<?php
session_start();
Ensuite, il faut regarder si c'est la première page que regarde le visiteur ou non. Pour ce faire, il suffit de
vérifier si la variable session comprenant le nombre de requêtes existe. Après, il ne reste plus qu'à utiliser
notre fonction.
if(!empty($_SESSION['requetes'])){
$nombre_requetes = $_SESSION['requetes'];
}
else{
$nombre_requetes = 0;
}
//maintenant, la fonction
function requete($query){
$nombre_requetes++;
//on stocke le nombre de requêtes dans une variable session:
$_SESSION['requetes'] = $nombre_requetes;
return mysql_query($query);
}
Il y a quelques petits changement dans ce code. Tout d'abord, on n'utilise pas isset() mais !empty(); comme ça, on
est sûr que la variable existe et qu'elle n'est pas vide. Ensuite, on n'utilise plus global $nombre_requêtes car
la variable session la remplace. Il vous suffit, en bas de vos pages, d'afficher ceci:
echo'Vous avez effectué '.$_SESSION['requetes'];.' requêtes sur ce site.';
Voilà, vous pouvez maintenant afficher le nombre de requêtes ainsi que le temps d'exécution en bas de chaque
page.