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

时间:2016-01-23 11:15:21

标签: php

所以我正在建立一个网站,这是一个无法生成测验的网站,并且在最后几天我面临一个错误: 注意:未定义的偏移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' ";

另一个错误是:

Notice: Array to string conversion  at line 37 :
$zapytanie = "SELECT * FROM pytania WHERE id = '$z' ";

请帮忙。我试图解决这个错误已经5天了。请帮忙

2 个答案:

答案 0 :(得分:0)

您的代码段不完整,但我猜顶部是函数losowanie()。如果是这种情况,错误就在这一行:

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

您将结果数组添加到数组$id,以便它包含一个数组元素。我不认为你想要这个。

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

应该解决这个问题。

答案 1 :(得分:0)

根据您的通知:

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

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

因为您正在使用数组作为字符串,数组到字符串转换非常清楚您的第二个通知。这意味着上面提到的线将解决问题。