我是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