2017-02-28 70 views
-1

我面臨將數據庫中的變量或行添加到$_SESSION中的問題。 在這裏,我從數據庫中提取行,並在數組的幫助下將其存儲到$ _SESSION中。但我無法在$_SESSION[]中更新/添加/刪除行數量。添加和更新會話中的值

如果你告訴我什麼是添加陣列$_SESSION[]以及如何更新/只$_SESSION[]刪除其特定行的正確方法,我將非常感激。當我使用in_array()它只發現最後一行的值。當我試圖找到第二行或第三行的數據時表示找不到。

注意:我已在此問題的計算器中搜索。但這些回答並沒有接近我的問題。這裏有以下link1link2這些鏈接,link3

這裏是我的數據庫表:

Table Image

我的輸出:

Output image

PHP頁面:

<?php 
    $link = new mysqli('localhost','root','admin','pavancart'); 
    if ($link->connect_error){ 
     die("Connection failed: ".$link->connect_error); 
    } 

    $sql = "SELECT * FROM product"; 
    $res= $link->query($sql); 

    while($row = $res->fetch_assoc()){ 
     $_SESSION['item']=$row; 
     echo '<pre>'; 
      echo print_r ($_SESSION["item"],true); 
     echo '</pre>'; 
    } 

    if(in_array("1",$_SESSION['item'])){ 
     echo "found"; 
    }else{ 
     echo "Not found"; 
    } 
?> 

回答

1

你的while循環沒問題,但每次都用新行替換$ _SESSION ['item'],所以in_array("1",$_SESSION['item'])循環後面的語句總是查找while循環獲取的最後一個項目。如果你想在每一行中,檢查放if ... else聲明while循環中,

,如果你想要把所有記錄在$_SESSION['item'],你不能做到這樣,你應該首先聲明$_SESSION['item']作爲一個數組然後按各行其...喜歡 -

// declare $_SESSION['item'] as an array 
$_SESSION['item'] = []; 
while($row = $res->fetch_assoc()){ 
    // Now push each row in $_SESSION['item'] 
    // ........... place your if ........ else block here 
    array_push($_SESSION['item'],$row); 
} 

echo '<pre>'; 
// now you will get $_SESSION["item"] in 2D array 
echo print_r ($_SESSION["item"],true); 
echo "</pre>"; 

如果您想對二維數組進行搜索的功能,請Read This

+0

隨意問這個 –

+0

@ Veshraj喬希相關的問題,我很新的_SESSION與$在PHP你的代碼我已經實現了,我可以搜索throu gh數組。現在我需要刪除或更新它。 –

+0

現在,要刪除使用'unset($ _ SESSION ['item'] [rownumber])',更新,你可以簡單地分配 - '$ _SESSION ['item'] [rowindex] ['rowindexFieldKey'] =' somevalue'' –