多维数组/会话

时间:2013-03-02 03:55:13

标签: php arrays session

我已经建立了展览预订系统,参展商在其中输入他们的详细信息,然后选择他们想要预订的“展览”,包括“展位尺寸”以及与展会同时出现的任何“附加”。 (Stand Sizes& Extras特定于每个节目)。 这项工作正常,在我的数据库中输入正确的预订详细信息(每个节目预订1行,每个节目)。 但是,我需要在预订数据插入数据库之前添加一个Conformation页面(因为用户点击他们的后退按钮进行更正,然后再次单击“book”,以便在某些情况下添加重复项。)

每个预订都有1 x Show,1 x Stand但多个x Extras 可以同时进行多次预订(针对不同的节目)。

我认为即时通讯正确:我正在尝试将每个预订的所有数据存储到一个数组中(特定的SESSION数组),因此我可以输出(以HTML格式)即将预订的内容。然后,用户单击确认(或编辑),然后将会话数据提取/插入到我的数据库中。

我正在努力解决这个问题,因为我在数组中有数组,因为我需要将数据保存在一起,而且我不知道每个节目会预订多少额外内容。这样好吗?

下面是代码的数组部分(以及我的测试),但它没有按预期工作(并且我还没有完全理解如何提取数据)

session_start();
session_destroy();
$_SESSION[] = array();

$_SESSION[] = array(showID=>1, standID=>s1, extras=>array(x1, x1QT=>2 ,x2, x2QT=>4 ));
$_SESSION[] = array(showID=>2, standID=>s2, extras=>array(x1,x2));

foreach ($_SESSION as $booking) {
    foreach($booking as $showID => $show){
        echo 'Show ID = ' . $show. '<br>';
    }

}

我知道我需要更多代码,但我正在努力弄清楚如何从阵列中访问正确的数据,具体到每个节目。 我不认为我将在构建阵列时遇到问题,因为执行此操作的代码已经正常工作(上面手动添加,仅用于测试)。

如果有人能指出我正确的方向,我将非常感激。 完全有可能我不会以正确的方式解决这个问题,所以请按照我应该采取的方式随意告诉我。 (或者我应该将所有数据存储为隐藏表单输入,这些输入是在提交“conformation”时传递的?)

1 个答案:

答案 0 :(得分:0)

你的数组键&amp;值必须引用(')

$_SESSION[] = array('showID'=>'1', 
                    'standID'=>'s1', 
                    'extras'=>array(
                                    'x1', 
                                    'x1QT'=>'2' ,
                                    'x2', 
                                    'x2QT'=>4 ));

$_SESSION[] = array('showID' => '2', 
                    'standID'=> 's2', 
                    'extras' => array('x1','x2'));