1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| function get_nbsites($cat)
//retourne le nombre de sites presents dans une categorie ainsi que dans ses sous-categories
{
global $T_categories,$T_sites; //noms des tables utilisees
//on place la categorie dans un tableau
$list_all_cats[] = $cat;
while (list($cle,$id_cat) = each ($list_all_cats))
//tant qu'on a encore des nouvelles categories
{
//on va chercher toutes les sous-categories de id_cat
$sql_scats = "SELECT id FROM $T_categories WHERE id_cat_mere = '$id_cat' AND activation = 1 ";
//on envoie la requete
$res_scats = send_sql($sql_scats,"trouver le nombre de sous-catégories de $id_cat");
//ajout des categories dans le tableau
while ($result = mysql_fetch_array($res_scats,MYSQL_ASSOC))
$list_all_cats[] = $result["id"];
}
//preparation de la requete pour aller chercher le nombre de site
$sql_nb_sites = "SELECT count(id) as count FROM $T_sites WHERE activation = 1 and (";
$nb_cats = sizeof($list_all_cats);
for ($i=0;$i<$nb_cats-1;$i++)
//on rajoute toutes les sous-categories
$sql_nb_sites .= "id_cat = '$list_all_cats[$i]' or ";
$sql_nb_sites .= "id_cat = '$list_all_cats[$i]') ";
//envoi de la requete
$res_nb_sites = send_sql($sql_nb_sites,"trouver le nombre de sites dans la catégorie $id_cat");
return mysql_result($res_nb_sites,0,"count");
} |