我是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'时它变为null。这可以将$ items作为全局变量吗?还是有其他办法吗?
非常感谢任何帮助!
答案 0 :(得分:0)
您可以将检索到的行集存储在$ _SESSION超全局中。喜欢:
if (empty($_SESSION['items']) {
$result = mysqli_query($link, 'SELECT * FROM TB');
while ($row = mysqli_fetch_array($result)) {
$rowData[] = array('c1' => $row['c1'], 'c2' => $row['c2']);
}
$_SESSION['items'] = $rowData;
}
$items = $_SESSION['items'];
但是,Dagon所说的是真的。
答案 1 :(得分:0)
只需将查询和while循环移动到if(isset($ _ GET ['C1']))行之上,这将使$ items可用于itemeach.html.php脚本。如果您可以发布itemeach.html.php的内容,我们可以帮助您。