i enregistrer le nombre de requêtes de mon site Web et dans la page le script ci-dessous s'exécute, 40 requêtes supplémentaires ajoutées à la page.comment modifier une boucle de requête while sql dans une boucle de tableau
comment puis-je modifier cette connexion SQL dans un propper et la lumière d'une
function tree_set($index)
{
//global $menu; Remove this.
$q=mysql_query("select id,name,parent from cats where parent='$index'");
if(mysql_num_rows($q) === 0)
{
return;
}
// User $tree instead of the $menu global as this way there shouldn't be any data duplication
$tree = $index > 0 ? '<ul>' : ''; // If we are on index 0 then we don't need the enclosing ul
while($arr=mysql_fetch_assoc($q))
{
$subFileCount=mysql_query("select id,name,parent from cats where parent='{$arr['id']}'");
if(mysql_num_rows($subFileCount) > 0)
{
$class = 'folder';
}
else
{
$class = 'file';
}
$tree .= '<li>';
$tree .= '<span class="'.$class.'">'.$arr['name'].'</span>';
$tree .=tree_set("".$arr['id']."");
$tree .= '</li>'."\n";
}
$tree .= $index > 0 ? '</ul>' : ''; // If we are on index 0 then we don't need the enclosing ul
return $tree;
}
//variable $menu must be defined before the function call
$menu = '....<ul id="browser" class="filetree">'."\n";
$menu .= tree_set(0);
$menu .= '</ul>';
echo $menu;
i entendu, cela peut être fait en changeant dans un tableau, mais je ne sais pas comment faire
merci à l'avance
Merci l'homme, mais après l'exécution de votre code, appache arrêter de travailler en raison de débordement de requêtes –
@Mac: Désolé, j'ai eu un bug, s'il vous plaît [voir les changements que j'ai fait] (http://stackoverflow.com/posts/2877867/ révisions) et faites-moi savoir si cela corrige l'erreur. – Josh
@Mac: OH. Silly, je viens de réaliser que ton algorithme est récursif. Ma réponse est complètement fausse ... S'il vous plaît reconnaissez que vous avez vu ce commentaire, parce que je veux supprimer cette réponse. – Josh