什么都没有传递到PHP数组时出错

时间:2013-11-20 19:26:17

标签: php sql arrays

我的代码基本上将Id Numbers添加到数组中,然后在另一个页面上使用这些Id编号来检索相关的行信息。通过选中项旁边的复选框,将Id编号添加到阵列中。如果没有检查任何项目并且提交了表单,则显然没有任何内容添加到数组中并输出错误:

  

警告:pg_query()[function.pg-query]:查询失败:错误:语法错误在“或”附近“)”LINE 1:... ELECT this1,this2,this3 FROM table1 WHERE Ref IN()^ in第49行 _ __ _ __ _ __

     

警告:pg_fetch_row()要求参数1为资源,布局在 _ __ _ __ _ __ _ __

获取已检查值并使用数组的代码是:

session_start();
$games = $_POST['games'];
$list = implode(',', $games);

这是我的代码,但仍然无法让SESSION工作?

$_SESSION["gamelist"] = $games; 
$games = $_POST['games']; 
if (!empty($games)){ 
$games = $_POST['games']; 
$list = implode(',', $games);
}else { 
header('Location:./home.php'); 
} 

2 个答案:

答案 0 :(得分:0)

您必须在使用之前检查数组是否为空。

$games = $_POST['games'];

if (!empty($games)){
    $games = $_POST['games'];
    $list = implode(',', $games);

}else {
    // things to do when the array is empty
}

答案 1 :(得分:0)

Ibu回答了第一部分,关于创建会话的第二部分非常简单,一旦你知道你的数组不是空的:

$_SESSION["pick-a-name"] = $games;

有关$ _SESSION功能的更多详细信息,请访问:http://us2.php.net/session_start

更新(2013年11月21日):

session_start();
//$games = $_POST['games']; 
$games = array(1=>"element1",
          2=>"element2",
          3=>"element3");

if (!empty($games)){ 
     $_SESSION["gamelist"] = $games; 
     $list = implode(',', $games);
}else {
    header('Location:./home.php'); 
}

echo $list."<br />";
print_r($_SESSION["gamelist"]);

这段代码非常适合我。我测试了$游戏设置和没有,并且两个条件都得到了适当的满足。你还得到什么错误?