【发布时间】:2011-07-08 23:24:37
【问题描述】:
我想在从 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>';
我认为通过两次查询数据库,上面的代码可能会使用比所需资源更多的资源。由于我在页面中有数据,再次获取相同的数据是浪费内存并且不好。
所以我的问题是:
每次我使用
mysql_fetch_assoc()时,它是否会发送单独的查询并从数据库中获取数据?还是它只从数据库中获取数据一次,然后它只是循环通过现有数组?就我而言,最好的解决方案是什么?
简单地说 - 我是否以最好的方式做到这一点?有没有更好的方法来做到这一点,而不是浪费内存/资源/时间?因为它是相同的数据,所以我显示了两次。
【问题讨论】: