我希望在一个页面中展示从MySQL获取的数据,该数据被多次使用。
首先,我想使用while循环使用mysql_fetch_assoc()
从MySQL获取数据,然后将其显示为菜单。第二次,我想在页脚中将相同的数据显示为站点地图。
目前,我正在两次调用mysql_fetch_assoc()
,如下所示:
// This one is the Menu
echo '<ul class="menu">';
while( $data = mysql_fetch_assoc($query) ) {
echo '<li><a href="page.php?id='.$data['id'].'">'.$data['title'].'</a>';
}
echo '</ul>';
// other page contents here
// at the footer - the small sitemap
echo '<ul class="sitemap">';
while( $f_data = mysql_fetch_assoc($query) ) {
echo '<li><a href="page.php?id='.$f_data['id'].'">'.$f_data['title'].'</a>';
}
echo '</ul>';
我认为上面的代码可能比需要查询数据库两次使用更多的资源。由于我已经在页面中有了数据,再次获取相同的数据会浪费内存并且不好。所以我的问题是:
1.每次使用mysql_fetch_assoc()时,它是否发送单独的查询并从数据库中获取数据?还是只从数据库中获取一次数据,之后仅循环遍历现有的数组?
2.在我的情况下,最佳解决方案是什么?
简而言之-我是否以最佳方式执行此操作?是否有更好的方法来执行此操作,而不会浪费内存/资源/时间?因为我显示的是相同的数据。
<ul>
元素上放置不同的类。可以使用 2 个变量$menu
和$sitemap
来启动列表,并将其内部(循环)称为$list
。然后只需echo $menu . $list . "</ul>";
即可轻松实现。 - Michael Berkowski