【问题标题】:Add and update values in session在会话中添加和更新值
【发布时间】:2017-07-18 21:14:04
【问题描述】:

我在将变量或行从数据库添加到 $_SESSION 时遇到问题。 在这里,我从数据库中获取行并在数组的帮助下将其存储到 $_SESSION 中。但我无法在$_SESSION[] 中更新/添加/删除行数。

如果您告诉我向$_SESSION[] 添加数组的正确方法是什么以及如何仅在$_SESSION[] 中更新/删除其特定行,我将非常感激。当我使用in_array() 时,它只会找到最后一行的值。当我尝试查找第 2 行或第 3 行的值时,它显示未找到。

注意:我已经在 stackoverflow 中搜索过这个问题。但那些回答并没有接近我的问题。以下是link1、link2、link3下方的链接

这是我的数据库表:

我的输出:

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";
    }
?>

【问题讨论】:

    标签: php mysql arrays session foreach


    【解决方案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

    【讨论】:

    • 欢迎提出与此相关的问题
    • @ Veshraj Joshi 我对 php 中的 $_SESSION 非常陌生,使用您的代码我已经实现了能够搜索数组。现在我需要删除或更新它。
    • 现在,删除使用unset($_SESSION['item'][rownumber]),更新你可以简单地分配-$_SESSION['item'][rowindex]['rowindexFieldKey']='somevalue'
    • 让我知道我最后的评论是否适合你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    • 2014-01-06
    • 2020-06-06
    • 1970-01-01
    • 2014-04-21
    • 1970-01-01
    相关资源
    最近更新 更多