PHP中未定义的变量错误,代码逻辑

时间:2014-03-10 21:06:06

标签: php mysql variables post

$res = $mysqli->query("SELECT AnhID FROM anhoriga WHERE PNr='".$_POST['PNR2']."'");
while($row = $res->fetch_assoc()){
   $anhid = array_shift($row);
}

$res = $mysqli->query("INSERT INTO samband2 VALUES(".$anhid.", ".$_POST['PNR'].")");

这段代码告诉我这个错误行:

>Notice: Undefined variable: anhid in C:\xampp\htdocs\skapa.php on line 18.

最后一行代码是第18行。

我是傻瓜,还是我没有在前面的代码中定义变量$anhid ??? 具体来说,我正在创建一个员工注册,连接到一个包含所有相关信息的数据库。

$anhid作为回报是变量(和数据库中的主键),其中包含每个熟人员工的唯一ID。

$_POST['PNR2']包含熟人的社会安全号码。

anhoriga是一张表,拼写正确。

请有人解释我做错了吗?

2 个答案:

答案 0 :(得分:0)

如果第一个查询中的$ res-> fetch_assoc()中没有行,那么您就不会定义$ anhid。

另一个想法,你可能需要将你的mysql插入到while循环中,这样就可以对$ anhid的每个值执行,而不仅仅是最后一个。

答案 1 :(得分:0)

declare anhid .  looks like your sql is not returning any data. thats why anhid is not getting set.

var  $anhid ="";
$res = $mysqli->query("SELECT AnhID FROM anhoriga WHERE PNr='".$_POST['PNR2']."'");
    while($row = $res->fetch_assoc()){
        $anhid = array_shift($row);
    }

if(!empty($anhid)){


$res = $mysqli->query("INSERT INTO samband2 VALUES(".$anhid.", ".$_POST['PNR'].")");
}

如果您认为有多个anhid,那么您应该将插入放在while循环中,或者如果您的select只返回一行,那么您不需要while循环。