[英]How to resolve a 'notice: array to string conversion' error using foreach loop in PHP?
我想用PHP
和MySQL
显示10个问题选项,并使用foreach
循环显示每个问题选项,但我收到通知。
我有两个名为“questions”和“options”的表,我在名为q_id
选项中有一个字段,它已经通过id字段加入了问题表。
这是我的SQL代码:
public function selectOptions($id)
{
$sql = $this->pdo->prepare("select options.option1,options.option2,options.option3,options.option4 FROM `options` INNER JOIN questions ON options.q_id = questions.id WHERE questions.id = '$id'");
$sql->execute();
$row = $sql->fetchAll(PDO::FETCH_ASSOC);
//var_dump($row);die;
return $row;
}
这是我的PHP代码:
foreach ($num as $key => $value) {
$toal[] = $num[$key]->id;//this will be the questions id
}
$q_id = $toal;
foreach ($q_id as $val) {
$j =$obj->selectOptions($q_id);//this will select options
var_dump($j);
}
我希望输出是一个选项数组,但它返回一个错误:
注意:数组到字符串的转换
我该如何解决上述问题?
在发送$q_id
(原始数组)而不是$val
向函数发送错误的参数。
你的代码说:
foreach ($q_id as $val) {
$j =$obj->selectOptions($q_id); // you use the $q_id which is array
selectOptions
将其参数视为字符串,而不是通知的数组。
将您的代码更改为:
foreach ($q_id as $val) {
$j =$obj->selectOptions($val);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.