CodeIgniter — показывает результат запроса

Где я ошибся в своем коде?

контроллер

class uzytkownik extends CI_Controller
{
public function index()
{
$this -> load -> model('Uzytkownik_model');

$DaneUzytkownicy = array(
'Dane' =>  $this -> Uzytkownik_model -> PobierzUzytkownikow(),
);

$this -> load -> view('naglowek');
$this -> load -> view('logo');
$this -> load -> view('uzytkownicy', $DaneUzytkownicy);
$this -> load -> view('stopka');

модель

class Uzytkownik_model extends CI_Model
{
public function __construct()
{
parent::__construct();
}

public function PobierzUzytkownikow()
{
$ListaUzytkownikow = $this -> db -> query('SELECT * FROM uzytkownik');

return $ListaUzytkownikow;
}

Посмотреть

foreach ($Dane->result() as $Uzytkownik)
{
var_dump($Uzytkownik);
echo $Uzytkownik['id'].' '.$Uzytkownik['imie'].' ' .$Uzytkownik['nazwisko'].'<br>';
}

в результате я получил

object (stdClass) # 18 (7) {[«id»] => string (1) «1» [«imie»] => string (3)
«Jan» [«nazwisko»] => string (8) «Kowalski» [«email»] => string (12)
«[email protected]» [«login»] => string (5) «Kowal» [«haslo»] => string (4)
«1234» [«data_rejestracji»] => string (19) «2015-02-23 11:45:48»}
Фатальная ошибка: Невозможно использовать объект типа stdClass в качестве массива в
C: \ xampp \ htdocs \ ci \ application \ views \ uzytkownicy.php в строке 6

Почему появляется фатальная ошибка?

1

Решение

использование result_array() вместо result() если вы хотите использовать результат в виде массива. В противном случае он будет рассматриваться как объект

foreach ($Dane->result_array() as $Uzytkownik) {
var_dump($Uzytkownik);
echo $Uzytkownik['id'] . ' ' . $Uzytkownik['imie'].' ' . $Uzytkownik['nazwisko'] . '<br>';
}

В твоем случае результат $Uzytkownik будет объектом, а не массивом. так что вы должны получить доступ, как это

echo $Uzytkownik->id.' '.$Uzytkownik->imie.' '.$Uzytkownik->nazwisko;
0

Другие решения

Используйте result_array (), потому что вы должны использовать в качестве массива результатов, и теперь вы стоите в качестве класса объекта std,

вот так,

foreach ($Dane->result_array() as $Uzytkownik)
{
var_dump($Uzytkownik);
echo $Uzytkownik['id'].' '.$Uzytkownik['imie'].' ' .$Uzytkownik['nazwisko'].'<br>';
}
0

По вопросам рекламы [email protected]