php会话ID值到多个页面

时间:2017-06-04 18:37:07

标签: php html mysql

我尝试将会话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都会传递到第二页

2 个答案:

答案 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;