【发布时间】:2011-07-28 14:58:12
【问题描述】:
我正在构建一个简单的网络应用程序,我有一天会开源。就目前而言,导航是在每次页面加载时生成的(有一天会更改为缓存),但目前,它是使用下面的代码制作的。使用 PHP 5.2.6 和 MySQLi 5.0.7.7,下面的代码效率能提高多少?我认为加入可能会有所帮助,但我正在寻求建议。任何提示将不胜感激。
<?php
$navQuery = $mysqli->query("SELECT id,slug,name FROM categories WHERE live=1 ORDER BY name ASC") or die(mysqli_error($mysqli));
while($nav = $navQuery->fetch_object()) {
echo '<li>';
echo '<a href="/'. $nav->slug .'">'. $nav->name .'</a>';
echo '<ul>';
$subNavQuery = $mysqli->query("SELECT id,name FROM snippets WHERE category='$nav->id' ORDER BY name ASC") or die(mysqli_error($mysqli));
while($subNav = $subNavQuery->fetch_object()) {
echo '<li>';
echo '<a href="/'. $nav->slug .'/'. $subNav->name .'">'. $subNav->name .'</a>';
echo '</li>';
}
echo '</ul>';
echo '</li>';
}
?>
【问题讨论】:
-
+1 用于发布此问题;带有查询的循环很糟糕。我不擅长 JOIN 来帮助您,但还有很多其他人可以!
标签: php mysql database performance mysqli