我在使用会话传递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,但有更多。我想知道如何展示它。
答案 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);
}