使用PHP中的会话将数据数组传递到其他页面

时间:2015-07-04 03:19:01

标签: php arrays session csv

我在使用会话传递Php中的数据数组时遇到了一些问题: 在我的班上,我有这个功能:

 public function check_dupID($id)
 {
     $this->stmt="select id from student where id='$id'";
     $this->res = mysql_query($this->stmt);
     $this->num_rows = mysql_num_rows($this->res);
     if($this->num_rows == 1)
     {
         while($this->row = mysql_fetch_array($this->res))
         {
             $dup_id = $this->row[0];
             return $dup_id;
         }
    }
}

此代码检查学生的重复ID。现在,原因是我使用“.csv”文件将文件上传到数据库中。

在上传之前,我将csv文件中的所有数据放入一个数组中。现在,我逐一检查: //创建了用于检查的变量

$id = $check->check_dupID($array[0]);


if($id == TRUE)
{

    session_start();
    $_SESSION['id']; = $id;//passing it to the next back to array again. 
    $redirect->page($error);
}

现在当它重定向时,它会给我一个“数组”的结果,如果我使用foreach解析它,它只显示一个id,但有更多。我想知道如何展示它。

2 个答案:

答案 0 :(得分:0)

此代码将在第一次找到时返回重复的ID。如果要返回所有重复的id,请使用while循环将它们添加到数组中,然后返回它。 为此,请修改您的代码:

    public function check_dupID($id)
 {
     $this->stmt="select id from student where id='$id'";
     $this->res = mysql_query($this->stmt);
     $this->num_rows = mysql_num_rows($this->res);
     $dup_id = array();// added here to prevent invalid argument supplied to foreach loop error if nothing is found
     if($this->num_rows >1)
     {

         while($this->row = mysql_fetch_array($this->res))
         {
            $dup_id[] = $this->row[0];// adding duplicates into the array

         }
         return $dup_id;
    }
}

答案 1 :(得分:0)

此代码修复了我的问题:

if($id == TRUE)
        {
        $get_id = array();
        $get_id[] = $id;
            session_start();
            $_SESSION['id']; = $get_id;//passing it to the next back to array again. 
            $redirect->page($error);
        }