我在 php while 循环中从 mysql 填充产品目录。 我试图做到这一点,以便当我单击产品时,产品信息会显示在另一个页面上。到目前为止,我尝试使用 session ,但无论单击哪个产品,它总是发送最后一个产品。我需要帮助!!
目录。
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'>£{$row['price']}</div>",
"</div>",
"</a>";
$_SESSION['name']=$row['name'];
$_SESSION['brand']=$row['brand'];
$_SESSION['code']=$row['code'];
$_SESSION['image']=$file;
}
这就是我想在另一页上显示它的地方
echo "<div class='productcontainer'>",
"<div class='productpageimage'>",
"<img src='{$_SESSION['image']}' alt='{$_SESSION['name']}' />",
"</div>",
"<div class='productpagename'>",
$_SESSION['name'],
"</div>",
"<div class='productpagebrand'>",
$_SESSION['brand'],
"</div>",
"<div class='productpagecode'>",
$_SESSION['code'],
"</div>",
"</div>";
?>
有人可以帮忙吗?
最佳答案
每次迭代数组时,您都会设置 $_SESSION
值,因此只会“保留”最终迭代的值。如果您想以这种方式设置 session 值,则需要传递产品记录的标识符,然后设置 $_SESSION
值(即在 products.php 页面上)。有很多不同的方法可以做到这一点 - 您可以将信息编码到您创建的链接中:
echo "<a href='products.php?name=" . $row['name'] . "&brand=" . $row['brand'] . "&code=" . $row['code'] . "&'>"
然后使用 products.php 页面上 $_GET 的值设置 $_SESSION:
$_SESSION['name'] = $_GET['name'];
// ... etc.
或者,更常见的是,仅传递标识符(您有产品 ID 吗?),然后在 products.php 上执行另一个 sql 查找。
关于php - 获取点击链接,在另一个页面显示产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20252204/