我是PHP + MySQL的新手,并遵循一个示例来构建网页。全局变量并减少PHP + MySQL中的数据库访问
基本上,我的首页读取数据库,检索页面上的所有项目和列表。每个项目都有指向新页面的链接,显示其详细信息。
列表页:
//itemlist.html.php
<html><body>
<ul>
<?php foreach ($items as $item): ?>
<li><a href="?C1=<?php echo($item['c1']); ?>">
<?php echo($item['c1']); ?></a></li>
<?php endforeach; ?>
</ul>
</body></html>
商品页面中:
//itemeach.html.php
<html><body>
<h1><?php echo($c1) ?></h1>
<p><?php echo($c2) ?></p>
</body></html>
索引页:
<?php
if (isset($_GET['C1']))
{
/*
I want to reuse $iteminfos and get value for $c1 and $c2
*/
include 'itemeach.html.php';
exit();
}
$result = mysqli_query($link, 'SELECT * FROM TB');
while ($row = mysqli_fetch_array($result))
{
$items[] = array('c1' => $row['c1'], 'c2' => $row['c2']);
}
include 'itemlist.html.php';
?>
我删除了不必要的代码。自从第一次加载index.php时,检索$ infos。我想避免再次访问数据库来获取一个特定的项目,所以我正在考虑重新使用$ infos。但是当我触发'C1'时它变为空。这可能会将$ items保留为全局变量吗?还是有其他方法可以做到这一点?
任何帮助将不胜感激!
您可以将检索到的行集存储在$ _SESSION超全局中。像:$ _SESSION ['items'] = $ items;并把它放在while循环之后。 –
为每个页面做一个新的数据库请求是标准方法。 – 2011-11-01 19:30:28
而不是打开一个新窗口,我正在考虑弹出一个div(+ css)。我知道如何使用JavaScript来做一个静态的流行div,但是如何使用php + javascript,即流行div中的上下文是动态的? – DrXCheng