注意:未定义的偏移量:PHP

注意:未定义的偏移量:PHP,php,Php,因此,我创建了一个网站,该网站被迫生成一个测验,在过去的几天里,我遇到了一个错误: 注意:未定义的偏移量1 注意:未定义的偏移量2等。 第31行: $z = $id[$i]; 下面是代码的其余部分,可能会有所帮助 for($i=0; $i<$liczba; $i++) { $random = rand($i, $liczba) ; do{ $random = rand($i, $liczba) ; if(in_arr

因此,我创建了一个网站,该网站被迫生成一个测验,在过去的几天里,我遇到了一个错误: 注意:未定义的偏移量1 注意:未定义的偏移量2等。 第31行:

$z = $id[$i];
下面是代码的其余部分,可能会有所帮助

    for($i=0; $i<$liczba; $i++) {
        $random = rand($i, $liczba) ;
        do{
        $random = rand($i, $liczba) ;
        if(in_array($random, $wylosowanieNR) == false) {
            array_push($wylosowanieNR,$random) ;
            array_push($wylosowanieR,$random) ;
            break ;
        }
        }while(in_array($random, $wylosowanieNR) == false) ;

}
return $wylosowanieR ;
}
//code
$id[] = losowanie($_POST['ilePytan']) ;
//code
$z = $id[$i];
                    $zapytanie = "SELECT * FROM pytania WHERE id = '$z' ";

请帮忙。我试图修复这个错误已经5天了。请帮助

您的代码片段不完整,但我猜最上面的部分是函数
losowanie()
。如果是这种情况,则错误在此行中:

$id[] = losowanie($_POST['ilePytan']) ;
将结果数组添加到数组
$id
,使其包含一个数组元素。我想你不想要这个

$id = losowanie($_POST['ilePytan']) ;

应解决此问题。

根据您的ist通知:

losowanie函数将返回一个数组,您将再次将其作为$id[]分配到一个数组中,这应该是:

$id = losowanie($_POST['ilePytan']);

由于您的第二个注意事项非常清楚数组到字符串的转换,因此您将数组用作字符串。这意味着上述行将解决问题。

这是一个
通知
,而不是错误。从消息中可以明显看出原因:您试图访问数组
$id
中不存在的元素。数组到字符串通知意味着$id[$I]不是string@arkascha那么错误消息可能并不明显,因为您的描述显然不正确。它说的是“[…]'$z'``上的
数组到字符串的转换。意思是
$z
可能包含数组而不是预期的字符串。(注意是PHP中的一个错误级别,仍然值得修复)@WouterJ这是另一个注意,同样,不是错误。我参考了OP在这里发布的通知,请参见问题的顶部,下面的行作为参考。可能的副本
$id = losowanie($_POST['ilePytan']);