J'ai bien noté que le critère {boucle} est à utiliser avec parcimonie.
Toutefois, il m'est utile à plusieurs reprises dans la même page.
En activant le chronométrage des requetes MySQL ($mysql_profile = true;), j'ai
constaté des redondances entre certaines requêtes (en effet, j'utilise le
critère branche à plusieurs reprises dans la même page).
Aussi, j'ai ajouté à la fonction "calcul_branche", une sorte de mise en cache de
son résultat dans une variable statique. Ceci évite les redondances de requêtes
que j'avais constaté.
function calcul_branche ($generation) {
/*
if ($generation) {
$branche[] = $generation;
while ($generation = calcul_generation ($generation))
$branche[] = $generation;
return join(",",$branche);
} else
return '0';
*/
static $ciresult=array();
if ($generation) {
$cigeneration = $generation;
if ($ciresult[$generation]) {
return $ciresult[$generation];
} else {
$branche[] = $generation;
while ($generation = calcul_generation ($generation))
$branche[] = $generation;
$ciresult[$cigeneration]=join(",",$branche);
return $ciresult[$cigeneration];
}
} else
return '0';
}