使用mysqli_fetch_array()
循环打印for
的值时发生未定义的偏移错误:
代码:
$con=mysqli_connect($serverid,$useid,$passwordid,$dbid);<br>
$fieldcheck= "Select * from userregistrationform";<br>
$execfield=mysqli_query($con,$fieldcheck);<br>
if(mysqli_num_rows($execfield)>0) {
$idcheck= "Select ChangeID from userregistrationform";
$execq0=mysqli_query($con,$idcheck);
$idcmp=mysqli_fetch_array($execq0);
$idlength=count($idcmp);
echo $idlength;
for($x=0;$x < $idlength;$x++) {
echo $idcmp[$x];
}
注:
使用
时,代码可以正常工作while($idcmp=mysqli_fetch_array($execq0)) {
echo $idcmp['ChangeID'];
}
但如果我使用for循环,那么为什么会出现错误会很有帮助。
答案 0 :(得分:1)
当您打印$idcmp
时,您会看到以下内容:
array('ChangeID' => 100)
请参阅,数组中的键是ChangeID
。
当你这样做时
for($x=0;$x < $idlength;$x++) {
echo $idcmp[$x];
}
您尝试访问值为0
的密钥。但0
中没有关键$idcmp
。这就是您收到offset
错误的原因。
答案 1 :(得分:0)
mysqli_fetch_array()
的默认结果类型参数是MYSQLI_BOTH
,这意味着如果没有传递任何特定的结果,您将获得结果作为数值数组和关联数组(组合在一个数组中)参数。
尝试更改此内容:
$idcmp=mysqli_fetch_array($execq0);
进入这个:
$idcmp=mysqli_fetch_array($execq0,MYSQLI_NUM);