Как устранить ошибку 'note: преобразование массива в строку', используя цикл foreach в PHP? - PullRequest
1 голос
/ 09 июля 2019

Я хочу показать 10 вариантов вопросов, используя PHP и MySQL, и показать каждый вариант вопросов, используя цикл foreach, но я получаю уведомление.

У меня есть 2 таблицы с именем "Вопросы"и "параметры", и у меня есть поле в параметрах с именем q_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;
}

, и это мой PHPcode:

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);
}

Я ожидаю, что вывод будет массивом опций, но он выдаст ошибку:

примечание: преобразование массива в строку

Как я могу решить вышеуказанную проблему?

1 Ответ

3 голосов
/ 09 июля 2019

Вы отправляете неверный аргумент функции при отправке $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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...