2015-02-23 2 views
1

Где я ошибся в своем коде?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].pl" ["login"]=> string(5) "Kowal" ["haslo"]=> string(4) "1234" ["data_rejestracji"]=> string(19) "2015-02-23 11:45:48" } Fatal error: Cannot use object of type stdClass as array in C:\xampp\htdocs\ci\application\views\uzytkownicy.php on line 6

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

ответ

0

Используйте 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(), потому что вы должны использовать как результирующий массив, и теперь вы rendred как класс объектов станд,

здесь мы идем,

foreach ($Dane->result_array() as $Uzytkownik) 
     { 
      var_dump($Uzytkownik); 
      echo $Uzytkownik['id'].' '.$Uzytkownik['imie'].' ' .$Uzytkownik['nazwisko'].'<br>'; 
     } 
Смежные вопросы