Я получаю сообщение об ошибке:
«Неустранимая ошибка: нельзя использовать объект типа stdClass в качестве массива в строке» 181
Из этого кода:
$getvidids = $ci->db->query( "SELECT * FROM videogroupids " . "WHERE videogroupid='$videogroup' AND used='0' LIMIT 10"); foreach ($getvidids->result() as $row){ $vidid = $row['videoid']; //This is line 183 }
Кто-нибудь знает, что не так с вышеуказанным кодом? Или что эта ошибка означает?
CodeIgniter возвращает результирующие строки как объекты, а не массивы. Из руководства пользователя :
результат (а)
Эта функция возвращает результат запроса в виде массива объектов или пустой массив при сбое.
Вам нужно будет получить доступ к полям, используя следующие обозначения:
foreach ($getvidids->result() as $row) { $vidid = $row->videoid; }
если вы действительно хотите использовать массив, вы можете использовать:
$getvidids->result_array()
который будет возвращать ту же информацию, что и ассоциативный массив.
Извините. Хотя немного поздно, но надеюсь, что это поможет другим. Всегда используйте stdClass object.eg
$getvidids = $ci->db->query("SELECT * FROM videogroupids WHERE videogroupid='$videogroup' AND used='0' LIMIT 10"); foreach($getvidids->result() as $key=>$myids) { $vidid[$key] = $myids->videoid; // better methodology to retrieve and store multiple records in arrays in loop }