2012-03-13 94 views
0

嗨我有一个简单的问题我有一个会话,当我做了会议的print_r的,这是我得到什么?PHP从会话获取值

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']; ?> 

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

+0

的线什么你所说的“实在不行”的意思是? – 2012-03-13 19:25:13

+1

http://php.net/manual/en/function.unserialize.php – Basti 2012-03-13 19:25:59

+0

当我回声$ _SESSION ['项目'] ['名称']我得到'一',当它应该是'产品3' – user979331 2012-03-13 19:26:29

回答

5

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

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

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

var_dump($items); 

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

+2

在反序列化之后它看起来可能必须是'echo $ items ['1 _'] ['price']'。 – Crashspeeder 2012-03-13 19:32:19

+0

我在解剖眼前鞠躬 - 并相应地改变了我的答案。 ;-) – Basti 2012-03-13 19:34:15

+0

太好了。所以现在你的答案就像我的是5分钟前;) – webbiedave 2012-03-13 19:40:02

1

它看起来像数据被以某种方式序列化。你可以反序列化数据这样

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

但是你做的物品数组的任何更改都必须更新列席会议,由任何脚本与数据后面的工作与

$_SESSION['items'] = serialize($items); 
得到妥善处理
+0

这个作品太:) – user979331 2012-03-13 19:34:51

0

看你的序列化的数据,似乎你必须:

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

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

不知道为什么有一个1_但它在那里。

+0

真棒,只是我在找:) – user979331 2012-03-13 19:34:10

+0

很高兴帮助。记得勾选这个答案(在左上角)。 – webbiedave 2012-03-13 19:35:14

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