2013-11-27 69 views
0

我從一個PHP while while循環中填充mysql的產品目錄.. 我試圖使它當我點擊產品信息顯示在另一個頁面上的產品。到目前爲止,我試圖使用會話,但它始終發送最後一個產品,無論點擊哪一個。我需要幫助!!獲取點擊鏈接,在另一個頁面中顯示產品

該目錄。

while($row = mysqli_fetch_array($sql)){ 
$data = $row['image']; 
$file = substr($data, strpos($data, "/") + 1); 
echo "<a href='products.php'>", 
"<div class='productdiv'>", 
"<div class='productimage'>", 
"<img class='resizedimage' src='$file' alt='{$row['name']} Image' />", 
"</div>", 
"<div class='productname'>{$row['name']}</div>", 
"<div class='brand'>Brand -> {$row['brand']}</div>", 
"<div class='brand'>Code ->{$row['code']}</div>", 
"<div class='productprice'>&pound{$row['price']}</div>", 
"</div>", 
"</a>"; 
$_SESSION['name']=$row['name']; 
$_SESSION['brand']=$row['brand']; 
$_SESSION['code']=$row['code']; 
$_SESSION['image']=$file; 
} 

而這正是我想要顯示它的另一頁

誰能幫助嗎?

回答

0

您每次迭代數組時都會設置$_SESSION值,因此它只會「保留」最終迭代的值。如果您想以這種方式設置會話值,則需要傳遞產品記錄的標識符,然後在後面設置$_SESSION值(即在您的products.php頁面上)。有很多不同的方式來做到這一點 - 你可以編碼信息到您所創建的鏈接:

echo "<a href='products.php?name=" . $row['name'] . "&brand=" . $row['brand'] . "&code=" . $row['code'] . "&'>" 

然後設置$ _SESSION使用products.php頁的從$ _GET值:

$_SESSION['name'] = $_GET['name']; 
// ... etc. 

或者更常見的是,只傳遞標識符(您是否有產品ID?),然後在products.php上執行另一個sql查找。

+0

我該如何傳遞產品ID? – GlenR

+0

您的產品表中是否有產品ID? (什麼字段組成你的產品記錄?)你在尋找的是唯一標識產品的領域。 ('name'字段是唯一的嗎?)如果您可以發佈您的表架構和您正在使用的查詢,那將會很有幫助。 –

+0

假設您必須在其他頁面上傳遞hello,然後使用www.something.com/?anything=hello並在其他頁面上使用$ _GET ['anything']從url獲取值。 –

相關問題