2017-08-08 77 views
3

我有兩個名爲'addexpense'和'addcategory'的表。 我已成功加入每個表格,但在我的查看頁面上數據未查看,並且錯誤消息在屏幕上傳遞。請幫忙。「消息:未定義的變量:查詢」加入兩個表的錯誤codeigniter mysql php

這是我的模型

public function getExpenses(){ 
$this->db->select("addexpense.exp_date, addexpense.exp_amount, addexpense.exp_note, addexpense.exp_created, addcategory.category_name"); 
$this->db->from('addexpense'); 
$this->db->join('addcategory', 'addcategory.category_id = addexpense.category_id'); 
$query = $this->db->get(); 
return $query->result(); 
} 

這是我的控制器

public function join(){ 
    $query = $this->base_model->getExpenses(); 
    //$data['result'] = null; 
    if($query) 
    { 
     $data['query'] = $query; 
    } 
    $this->load->view('listexpense', $data); 
} 

這是我的看法代碼

<tr> 
    <td><strong>Date</strong></td> 
    <td><strong>Amount</strong></td> 
    <td><strong>Note</strong></td> 
    <td><strong>Created</strong></td> 
    <td><strong>Category Name</strong></td> 
</tr> 
<?php foreach($query as $expenses){?> 
<tr> 
    <td><?=$expenses->exp_date;?></td> 
    <td><?=$expenses->exp_amount;?></td> 
    <td><?=$expenses->exp_note;?></td> 
    <td><?=$expenses->exp_created;?></td> 
    <td><?=$expenses->category_name;?></td> 
</tr>  
<?php }?> 
+0

'$ query = $ this-> base_model-> getExpenses(); print_r($ query);退出;'檢查值是否來自模態或不? – JYoThI

+0

是的,我alredy檢查和通過我的控制器頁測試\t \t功能測試() \t \t { \t \t \t $查詢= $這個 - > base_model-> getExpenses(); \t \t \t的foreach($查詢作爲$查詢) \t \t \t { \t \t \t \t回聲$查詢 - > EXP_DATE; \t \t \t \t回聲$查詢 - > exp_amount; \t \t \t \t回聲$查詢 - > exp_note; \t \t \t \t回聲$查詢 - > exp_created; \t \t \t \t回聲$查詢 - > CATEGORY_NAME; \t \t \t} \t \t} – Yahiya

+0

的結果是什麼。你獲得了價值嗎? – JYoThI

回答

1

組控制器功能這樣

public function join(){ 
     $data['query'] = $this->base_model->getExpenses(); 
     $this->load->view('listexpense', $data); 
    } 
+0

仍然是錯誤消息在屏幕上,通知@parvez – Yahiya

+0

你試着用我的代碼@ Yahiya –

+0

是@parvez我已經做到了,仍然沒有改變 – Yahiya

0

請您可以檢查你的數據上查看文件會或不會被你的看法開始打印出來

<?php echo '<pre>'; 
print_r($query); 
?> 
+0

是它被傳遞,我使用的代碼,'功能測試() \t \t { \t \t \t $查詢= $這個 - > base_model-> getExpenses(); \t \t \t的foreach($查詢作爲$查詢) \t \t \t { \t \t \t \t回聲$查詢 - > EXP_DATE; \t \t \t \t回聲$查詢 - > exp_amount; \t \t \t \t回聲$查詢 - > exp_note; \t \t \t \t回聲$查詢 - > exp_created; \t \t \t \t回聲$查詢 - > CATEGORY_NAME; \t \t \t} \t \t}'@ user7596840 – Yahiya

+0

打印上在沒有控制器的功能 – user7596840

+0

html頁面的開始我也做了我們的代碼,我認爲網頁的html文件,意味着你對視的數據,仍然是錯誤與一個不同的彈出風格 – Yahiya

0

好像你還沒有初始化modelcontroller

在您的controller中,您需要先使用它的properties加載model。請檢查以下您的控制器方法。

public function join() { 
    $this->load->model('base_model'); 
    $query = $this->base_model->getExpenses(); 
    $data = array(); 
    if ($query) { 
     $data['query'] = $query; 
    } 
    $this->load->view('listexpense', $data); 
} 

讓我知道它仍然不起作用。

+0

仍然沒有希望的朋友 – Yahiya

+0

使用@ wolfgang1983提到的建議,可能是由於同一個變量名。 –

+0

檢查它太.. – Yahiya

0

型號變更結果()來result_array()

public function getExpenses(){ 
    $this->db->select("addexpense.exp_date, addexpense.exp_amount, addexpense.exp_note, addexpense.exp_created, addcategory.category_name"); 
    $this->db->from('addexpense'); 
    $this->db->join('addcategory', 'addcategory.category_id = addexpense.category_id'); 
    $query = $this->db->get(); 
    return $query->result_array(); 
} 

控制器試試下面

public function join() 
{ 
    $results = $this->base_model->getExpenses(); 

    $data['expenses'] = array(); 

    foreach ($results as $result) { 
     $data['expenses'][] = array(
      'exp_date' => $result['exp_date'], 
      'exp_amount' => $result['exp_amount'], 
      'exp_note' => $result['exp_note'], 
      'exp_created' => $result['exp_created'], 
      'category_name' => $result['category_name'] 
     ); 
    } 

    $this->load->view('listexpense', $data); 

} 

查看代碼,確保是正確的觀點

<table> 
<thead> 
</thead> 
<tbody> 
<?php foreach($expenses as $expense){?> 
<tr> 
    <td><?php echo $expense['exp_date'];?></td> 
    <td><?php echo $expense['exp_amount'];?></td> 
    <td><?php echo $expense['exp_note'];?></td> 
    <td><?php echo $expense['exp_created'];?></td> 
    <td><?php echo $expense['category_name'];?></td> 
</tr>  
<?php }?> 
</tbody> 
</table> 
+0

** A PHP錯誤遇到 嚴重性:注意 消息:未定義的變量:費用 文件名:觀點/ listexpense.php 行號:79 ** – Yahiya

+0

@Yahiya必須有的否則你可能會在另一個導致它的函數中加載相同的視圖。這一切都應該在我的工作。 – user4419336

0

下面是代碼,請檢查並更新 型號

public function getExpenses(){ 
    $this->db->select("addexpense.exp_date, addexpense.exp_amount, addexpense.exp_note, addexpense.exp_created, addcategory.category_name"); 
    $this->db->from('addexpense'); 
    $this->db->join('addcategory', 'addcategory.category_id = addexpense.category_id'); 
    $query = $this->db->get(); 
    $query_rows = $query->num_rows(); 
    if($query_rows > 0){ 
      return $query->result(); 
    } else{ 
      return 0; 
    } 
} 

對於控制器

public function join(){ 
    $this->load->model('base_model'); 
    $query = $this->base_model->getExpenses(); 
    //print_r($query);die(); 
    $data['query'] = ''; 
    if($query != 0){ 
      $data['query'] = $query; 
    } 

    $this->load->view('listexpense', $data); 
} 

對於瀏覽

<tr> 
    <td><strong>Date</strong></td> 
    <td><strong>Amount</strong></td> 
    <td><strong>Note</strong></td> 
    <td><strong>Created</strong></td> 
    <td><strong>Category Name</strong></td> 
</tr> 
<?php 
    if($query != ''){ 
    foreach($query as $expenses){?> 
     <tr> 
     <td><?=$expenses->exp_date;?></td> 
     <td><?=$expenses->exp_amount;?></td> 
     <td><?=$expenses->exp_note;?></td> 
     <td><?=$expenses->exp_created;?></td> 
     <td><?=$expenses->category_name;?></td> 
    </tr>  
<?php } }?> 

刪除註釋 「//的print_r($查詢);模具();」並檢查模型是否正在發送數據,並請更新。