注意:未定义偏移:PHP
问题描述:
因此,我正在制作一个网站,它会生成一个测验和几天的最后一天我面临的错误: 注意:未定义偏移1 注意:未定义偏移2等等。 在第31行:注意:未定义偏移:PHP
$z = $id[$i];
这里是代码的其余部分whic可能会有所帮助
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' ";
另一个错误是:
Notice: Array to string conversion at line 37 :
$zapytanie = "SELECT * FROM pytania WHERE id = '$z' ";
请帮助。我试图修复这个错误已经5天了。请帮忙
答
根据您的IST通知:
losowanie功能就会返回一个数组,你又分配到一个数组作为的$ id这个[]这应该是这样的:
$id = losowanie($_POST['ilePytan']);
监守你的第二个通知是非常明确的数组到字符串转换您正在使用一个数组作为字符串。这意味着上述线将解决问题。
答
你的代码片段并不完整,但我想最上面的部分是功能losowanie()
。如果是这样的情况下,错误是在这一行:
$id[] = losowanie($_POST['ilePytan']) ;
您的结果阵列添加到阵列$id
,以便它包含是一个数组的单个元素。我不认为你想要这个。
$id = losowanie($_POST['ilePytan']) ;
应该解决这个问题。
这是一个“通知”,而不是一个错误。原因很明显:您尝试访问数组“$ id”中不存在的元素。 – arkascha
Array to string notice意味着$ id [$ I]不是字符串 – devpro
@arkascha然后错误信息可能不明显,因为您的描述显然不正确。这是说'数组字符串转换''[']'$'''''。含义'$ z'可能包含一个数组而不是预期的字符串。 (并且通知是PHP中的错误级别,仍然值得修复) –