2013-04-25 2 views
0

간단한 쿼리의 결과를 표시하려고합니다.CodeIgniter - 심각도 : 알림 - 메시지 : 정의되지 않은 색인

[편집]는 내가 거기 activitati.denumireproiecte.denumire 사이에 충돌 것 같다,하지만 난 그 해결 방법을 모르는, 내 쿼리가 문제라고 생각합니다.

모델 : 컨트롤러

public function getActivities() { 
    $this->db->select('idA'); 
    $this->db->select('activitati.denumire'); 
    $this->db->select('tascuri'); 
    $this->db->select('activitati.bugetFolosit'); 
    $this->db->select('proiecte.denumire'); 
    $this->db->select('proiecte.bugetAlocat'); 
    $this->db->from('activitati'); 
    $this->db->from('proiecte'); 
    $this->db->where('activitati.aprobat = 0'); 
    $this->db->where('activitati.idProiect = proiecte.idProiect '); 

    $result = $this->db->get(); 
    $data = $result->result_array(); 

    return $data; 
} 

:보기

<?php 


class ApproveActivity extends CI_Controller{ 
    function __construct() { 
     parent::__construct(); 
    } 

    public function index() { 
     $this->getData(); 
    } 

    public function getData() { 
     $this->load->model("db_Activities"); 
     $data['query'] = $this->db_Activities->getActivities(); 
     $this->loadView($data); 
    } 

    public function approve() { 

    } 


    public function loadView ($data) { 
     $this->load->view("ViewActivityApproval",$data); 
    } 
} 

?> 

:

<table border="1"> 
    <tr> 
     <th>ID</th> 
     <th>Denumire</th> 
     <th>Tascuri</th> 
     <th>Buget Folosit</th> 
     <th>Proiect: Denumire</th> 
     <th>Proiect: Buget Alocat</th> 
    </tr> 
    <?php 
     var_dump($query); 
     foreach ($query as $row): ?> 

      <tr> 
       <td><?php echo $row['idA'];?></td> 
       <td><?php echo $row['activitati.denumire'];?></td> 
       <td><?php echo $row['tascuri'];?></td> 
       <td><?php echo $row['activitati.bugetFolosit'];?></td> 
       <td><?php echo $row['proiecte.denumire'];?></td> 
       <td><?php echo $row['proiecte.bugetAlocat'];?></td> 
      </tr> 
    <?php endforeach; ?> 
</table> 

이상한 부분은 다음과 같습니다 idAtascuri은 정상적으로 작동하지만 나머지는 그렇지 않습니다.

나는 또한 var_dump($query)를하고 난 두 차원 배열을 가지고 : 나는 하나의 foreach을했을 때

array(2) { 
    [0]=> array(5) { 
     ["idA"]=> string(2) "12" 
     ["denumire"]=> string(6) "Test 1" 
     ["tascuri"]=> string(11) "bla bla bla" 
     ["bugetFolosit"]=> string(3) "200" 
     ["bugetAlocat"]=> string(4) "2500" } 
    [1]=> array(5) { 
     ["idA"]=> string(2) "13" 
     ["denumire"]=> string(6) "Test 2" 
     ["tascuri"]=> string(11) "CursStiinta" 
     ["bugetFolosit"]=> string(3) "200" 
     ["bugetAlocat"]=> string(3) "100" } 
} 

그러나 idAtascuri도 일을. 어떤 생각?

+0

배열에'activitati.denumire' 요소가 없습니다. 배열의'var_dump'를 출력했습니다 - 그 안에'activitati.denumire'를 가리킬 수 있습니까? – zerkms

답변

0

$row 배열의 색인이 idAtascuri과 일치하지 않습니다. 여기서 각 행에 idA, denumire, tascuri, bugetFolositbugetAlocat의 요소가 있지만 activitati.denumire 등은 $row 배열의 표식이 아니므로 오류가 발생합니다.

echo $row['denumire'];을 수행해야합니다. 왜 $row['activitati.denumire']에 액세스하려고합니까 ??

+0

내가'denumire '를 두 개 가지고 있거나 적어도 내 쿼리에서 볼 수 있듯이'$ this-> db-> select ('proiecte.denumire ');와'$ this-> db- select ('proiecte.bugetAlocat'); ' – Kalec

+0

'나는 $ this-> db-> select ('proiecte.denumire')와'$ this-> db-> select ('activitati.denumire')를 의미했다. ' – Kalec

+0

맞습니다. 그러나 SQL 구문에서 사용하는 것은 결과 배열에 나타나는 것과 다릅니다. "SELECT proiecte.denumire as proiecte.denumire"라고 명시 적으로 말하지 않는 한, 어쨌든 당신이 할 수 있다고 확신 할 수는 없지만, 테이블 이름과 열 이름이 아닌 결과 배열에서 열 이름을 가져옵니다. – jraede

관련 문제