2017-06-04 68 views
0

我想將會話ID的值傳遞給不同的頁面,但只有最後一個產品ID傳遞到第二個頁面,不管是否選擇了具有不同ID的產品。理想的情況是什麼都產品被點擊ID應該傳遞到第二頁PHP會話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

您在開始會話之前已經輸出。 – pokeybit

+0

你指的是哪一行? – jumpman8947

回答

0

當您打印你從表中檢索產品的ID和在重複他們while循環,所以他們會是對的。要點擊會話時在會話中設置id產品,您必須在第二個頁面中設置值或使用AJAX請求進行設置,在這種情況下,必須使用Javascript。

0

那麼,因爲在while循環中,你每次都會覆蓋這個值,所以最後你只能得到最後一條記錄。

在兩個地方更改您的代碼。

1.使IDS的陣列

$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.使用從數據庫中沒有會話數據

替換此

<p><?php echo $_SESSION['id'];?></p> 

有了這個

<p><?php echo $row['ProductID'];?></p>

+0

當我做出上述變化時,我得到了「致命錯誤:[]運算符不支持字符串」引用「$ _SESSION ['id'] [] = $ row ['ProductID'];行 – jumpman8947

+0

我做了一個小改動,使用它並重試 –