在PHP中设置数组并将MySQL值写入其中时遇到问题

时间:2014-05-28 15:37:02

标签: php mysql

if(!isset($_SESSION)) 
        { 
          session_start(); 
        }
        $userid = $row['userid'];
        $_SESSION = array(
                      'login' => true,
                      'user'  => array(
                          'username'  => ['username'],
                          'userid' => $userid
                         ),
           'favshow' => array(
              '0' => $userid
           ),
           'fav' => array(
              '0' => '1'
           ), 
                    );
                    // $_SESSION['user']['favshow'] = array();

        // Load Favorites in Session
        $sql = "SELECT * FROM favorites WHERE userid =" . $userid ."";
        $result2=mysqli_query($mysqli,$sql);
        while($row=mysqli_fetch_array($result2)){
          if($row['show']){
           $_SESSION['user']['favshow'][] = $row['clubid'];
          }else{
            $_SESSION['user']['fav'][] = $row['clubid'];
嘿,我正在尝试初始化$ _SESSION ['user']中的'fav'和'showfav'数组,但没有成功。这是我的登录脚本的一部分,因此当用户登录表中的收藏夹时,应将其添加到其会话中。它目前说没有#fav'和'favshow'这样的索引,我不知道为什么。我的语法有什么问题吗?我尝试了一堆不同的风格,但仍然没有成功......

提前致谢

1 个答案:

答案 0 :(得分:0)

认为您正在尝试设置一个不存在的数组元素。它存在于$ _SESSION数组中,而不是$ _SESSION [' user']数组中。

尝试这样,初始化移动: -

<?php 
if(!isset($_SESSION)) 
{ 
    session_start(); 
}
$userid = $row['userid'];
$_SESSION = array(
                'login' => true,
                'user'  => array(
                    'username'  => ['username'],
                    'userid' => $userid,
                    'favshow' => array('0' => $userid),
                    'fav' => array('0' => '1') 
                                )
                );
            // $_SESSION['user']['favshow'] = array();

// Load Favorites in Session
$sql = "SELECT * FROM favorites WHERE userid =" . $userid ."";
$result2=mysqli_query($mysqli,$sql);
while($row=mysqli_fetch_array($result2))
{
    if($row['show'])
    {
        $_SESSION['user']['favshow'][] = $row['clubid'];
    }
    else
    {
        $_SESSION['user']['fav'][] = $row['clubid'];
    }
}

对于将整个会话变量用作单个数组,我也会有点小心。我倾向于在会话中添加我想要存储的任何变量/数组作为会话的下标。否则将来你会想要在$ _SESSION数组中存储其他内容,它将被这个脚本覆盖。