2012-03-20 2 views
1

I 모델에서 다음 쿼리로 DB를 조회하기 위해 노력하고있어 :CodeIgniter의 메시지 : 정의되지 않은 속성 : stdClass

function showSpecific(){ 

    $all = $this->session->all_userdata(); 
    $name = $all['u_name']; 

    $id = $this->db 
    ->select('u_id') 
    ->from('users') 
    ->where('u_name', $name) 
    ->get() 
    ->row(); 

    $id = $id->u_id; 

    $data = $this->db->query("SELECT messages.m_id, messages.post_id, messages.m_betreff, messages.an_user, messages.von_user, messages.m_time, users.u_id, users.u_name, posts.p_titel, users.u_id, messages.m_content 
       FROM messages 
       INNER JOIN users 
       ON messages.von_user=users.u_id 
       INNER JOIN posts 
       ON messages.post_id=posts.post_id 
       WHERE messages.an_user='$id' 
       ORDER BY messages.m_time DESC"); 




    return $data; 
} 

하지만 출력 뷰의 결과하려고하면

<?php foreach ($query->result() as $row) 
       { 
        echo '<tr><td>'; 
        echo anchor('users/showUser/'.$row->u_id, $row->u_name); 
        echo '</td><td>'; 
        echo $row->m_betreff; 
        echo '</td><td>'; 
        echo $row->m_content; 
        echo '</td><td>'; 
        echo anchor('posts/showSpecific/'.$row->post_id, $row->p_titel); 
        echo '</td><td>'; 
        echo $row->m_time; 
        echo '</td></tr>'; 
       } 
       ?> 

m_content만이 오류가 발생합니다. 이유는 무엇입니까? 어떻게 해결할 수 있을까요?

function showSpecific(){ 

    $this->load->model('messages_model'); 
    $data['query'] = $this->messages_model->getMessages(); 

    $data['main_content'] = 'specific_message'; 
    $this->load->view('includes/login_template', $data); 
} 

고마워 : 여기

A PHP Error was encountered 
Severity: Notice 

Message: Undefined property: stdClass::$m_content 

Filename: views/specific_message.php 

Line Number: 48 

내 컨트롤러입니다!

+1

시도'위해서 var_dump ($ 질의 -> 결과())'하고 m_content에 문제가 무엇인지 볼 수 있습니다. 또 다른 제안은보기 파일 안에 mysql 쿼리를 사용하지 않고, 템플릿으로 만 사용하는 것입니다. – safarov

+0

다른 값이 인쇄됩니까? –

+0

예. 다른 모든 값이 인쇄됩니다. 이 쿼리는 모델 내부에 있습니다. 죄송합니다. 코드 줄도 복사하는 것을 잊었습니다. 제안 해 주셔서 감사 드리며, 다시 시도해 보겠습니다. 감사! – Linus

답변

6

나는

$data['query'] = $this->db->query("..."); 

그렇게

$query=$this->db->query("..."); 

해야

생각 할 수 있습니다

foreach ($query->result() as $row) {...} 

참조 :codeigniter

질문 후 업데이트 : $ data [ 'query'] ($ 데이터가 추출됨)로 인해 뷰 내부에 $ query 변수가 있으면 $ query가 이제 (사용자의 뷰 내부에서) 당신의 객체이므로 $ 쿼리를 반복 할 수 있습니다 .

잘못된 모델 이름 은 getMessages()는가 호출 된, 그것은 showSpecific()

+0

다음과 같은 오류가 발생했지만 다음 오류가 발생합니다. 치명적 오류 : 19 행의 /htdocs/findjou/application/controllers/messages.php에 배열로 CI_DB_mysql_result 유형의 객체를 사용할 수 없습니다. – Linus

+0

배열 표기법을 사용하고 있습니까? 어디에서? 즉 $ row [ 'u_id']입니까? 객체를 반환하기 때문에 $ row-> u_id와 같이 사용하십시오. –

+0

http://codeigniter.com/user_guide/database/results.html –

관련 문제