【问题标题】:How to append data in session variable in php?如何在php的会话变量中附加数据?
【发布时间】:2015-08-22 12:07:32
【问题描述】:

我正在开发购物车应用程序。在此选定的产品 id 存储在会话变量中。如果用户想在购物车中添加其他产品,他将点击 Add More... 按钮。我想在同一会话变量中附加选定产品的 ID。

我的代码是:

shop_details_cart.php

$get_ids = $_GET['ids']; 
$ids =  json_decode($get_ids,true);
$id_string = implode(',', array_map(function ($entry) {
 return $entry['id'];
}, $ids));
//$_SESSION['ids'];
//array_push($_SESSION['ids'],$id_string);
$_SESSION['ids']=$id_string;
$sql=mysql_query("select product_id,name,stock from $shop_loc where product_id IN($_SESSION[ids])");

【问题讨论】:

    标签: php session


    【解决方案1】:
    if(isset($_SESSION['ids'])){
        $_SESSION['ids'].=$id_string.",";
    } else {
        $_SESSION['ids']=$id_string.",";
    }
    
    
    $sql=mysql_query("select product_id,name,stock from $shop_loc where product_id IN(".trim($_SESSION[ids],",").")");
    

    【讨论】:

    • 我这样修改了你的代码- if(isset($_SESSION['ids'])){ $_SESSION['ids'].=",".$id_string; } 其他 { $_SESSION['ids']=",".$id_string; } 回声 $_SESSION['ids']; $sql=mysql_query("select product_id,name,stock from $shop_loc where product_id IN($_SESSION[ids])")or die(mysql_error());但它给出了 $_SESSION['ids'] 值,例如 Array,133,134 和错误 'Unknown column 'Array' in 'where Clause''
    • 为什么它在会话变量中给出第一个元素数组?
    • 那是因为你连接 (.) $_SESSION['ids'] 而没有生成/分配任何东西给它。这就是它给出Notice: Undefined indexempty array 的原因。如果这里有什么令人困惑的地方,请告诉我。
    【解决方案2】:

    https://stackoverflow.com/a/32155938/7439186改进

    if(isset($_SESSION['ids'])){
            $_SESSION['ids'].= ' , '.$id_string;
        } else {
            $_SESSION['ids']=$id_string;
        }
    
    
        $sql=mysql_query("select product_id,name,stock from $shop_loc where product_id IN(".trim($_SESSION[ids],",").")");
    

    【讨论】:

    • 你可以编辑原始答案
    • @Mateja 抱歉,我不知道该怎么做,为什么我在 2017 年这样做了?
    • 啊哈哈,好吧。 :)
    猜你喜欢
    • 2019-09-27
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    • 2014-04-21
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多