php从会话中获取值

时间:2012-03-13 19:23:28

标签: php session

嘿伙计我有一个简短的问题我有一个会话,当我做会话的print_r时,这就是我得到的......

Array ( [items] => a:1:{s:2:"1_";a:5:{s:2:"id";s:1:"1";s:4:"name";s:9:"Product 3";s:5:"price";s:5:"20.00";s:6:"option";N;s:3:"qty";N;}} ) 

我试图回应价格和名称(价格= 20.00,名称=产品3)

我试过了..

<?php echo $_SESSION['price']; ?>

<?php echo $_SESSION['items']['price']; ?>

没有任何作用......任何想法?

4 个答案:

答案 0 :(得分:5)

$_SESSION['items']的内容似乎是serialized。尝试

$items = unserialize($_SESSION['items']);

echo $items['1_']['price'];

var_dump($items);

http://php.net/manual/en/function.unserialize.php

答案 1 :(得分:1)

看起来数据正在以某种方式被序列化。您可以像这样

反序列化数据
$items = unserialize($_SESSION['items']);

然而,您对items数组所做的任何更改都必须更新到会话,以便稍后脚本对数据进行正确处理

$_SESSION['items'] = serialize($items);

答案 2 :(得分:1)

查看序列化数据,您似乎必须:

$items = unserialize($_SESSION['items']);

$items ['1_']['price'];

不确定为什么会有1_,但它就在那里。

答案 3 :(得分:0)

你必须首先定义它使用会话开始,然后你可以使用下面这类代码的内容

     $data = mysql_query("select * FROM tablename where id = $id ") 
     or die(mysql_error()); 
     echo "<table border cellpadding=3>"; 
     while($info = mysql_fetch_array( $data )) 

and then you can echo the row you wish to by using $info example below

 echo "<th>User:</th> <td>".$info['user_name'] . "</td> ";