我尝试将会话ID的值传递给其他页面,但无论是否选择了具有不同ID的产品,只会将最后一个产品ID传递给第二页。理想情况下,点击任何产品的ID应传递到第二页
<body>
<?php
session_start();
$_SESSION['favcolor'] = 'green';
?>
<!--Some other html code -->
<?php
$servername = "localhost";
$username = "user";
$password = "pass";
$dbname = "dbname";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql2 = "SELECT * FROM tablename WHERE 1 ORDER BY ProductName ASC";
$myresult = $conn->query($sql2);
$x = 1;
while ($row = $myresult->fetch_assoc()) {
$_SESSION['id'] = $row['ProductID'];
?>
<div class="col-sm-4">
<div class="product-image-wrapper">
<div class="single-products">
<div class="productinfo text-center">
<a href="page2.php"> <img src="../../images/myImages/<?php echo $row['ProductImage1'];?>_0001_1.jpg" alt="../../images/myImages/<?php echo $row['ProductImage1'];?>_0001_1.jpg" /></a>
<h2><?php echo $row['ProductPrice'];?></h2>
<!-- when i echo $_SESSION['id'] i get correct values for each product -->
<p><?php echo $_SESSION['id'];?></p>
<p><?php echo $row['ProductName']; ?></p>
<!-- Other HTML Code -->
点击产品后的第二页,并期望传递正确的产品ID。
<body>
<?php
session_start();
echo $_SESSION['favcolor'];
echo $_SESSION['id'];
?>
这导致无论点击什么产品,最后一个产品ID都会传递到第二页
答案 0 :(得分:0)
当您打印从表中检索的产品的ID并在while
循环中迭代它们时,它们将是正确的。要在会话中设置id产品,您必须在第二页中设置值或使用AJAX请求设置它,在这种情况下必须使用Javascript。
答案 1 :(得分:0)
好吧因为在while循环中你每次都覆盖这个值,所以最后你只得到最后一条记录。
在两个地方更改您的代码。
<强> 1。制作一系列ID
$x = 1;
$idArray = array(); //define array
while ($row = $myresult->fetch_assoc()) {
$idArray[] = $row['ProductID']; //push values in array
//other code..
} // end while
$_SESSION['id'] = $idArray; //store to session
<强> 2。使用来自db not session
的数据替换此
<p><?php echo $_SESSION['id'];?></p>
有了这个
<p><?php echo $row['ProductID'];?></p
&GT;