2015-03-03 73 views
0

我想使用codeigniter從數據庫中獲取和更新數據。我正面臨一些問題。這是我的代碼:從數據庫中獲取和更新數據

這是我的Model,名稱爲Update_site_model。

<?php 
class update_site_model extends CI_Model{ 
    function show_invoice_id($data) { 
     $this->db->select('*'); 
     $this->db->from('invoices'); 
     $this->where('invoiceId', $data); 
     $query = $this->db->get(); 
     $result = $query->result(); 
     return $result; 

    //Update Query For Selected Invoice. 
    function update($id,$data) { 
    $this->db->where('invoiceId',$id); 
    $this->db->update('invoices',$data);  
    } 
} 
?> 

這是我的控制器的更新網站的名稱。

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
class Update_site extends CI_Controller { 

    public function __construct() { 
     parent::__construct(); 
     $this->load->view('includes/header'); 
     $this->load->view('site/update'); 
     $this->load->view('includes/footer'); 

     //load the model 
     $this->load->model('update_site_model'); 

    } 

    function show_invoices() { 
     $id = $this->uri->segment(3); 
     $data['single_invoice'] = $this->update_site_model->show_invoice_id($id); 
     $this->load->view('site/update', $data); 
    } 

    function update() { 
     $id = $this->input->post('invoiceId'); 
     $data = array(
     'Date' => $this->input->post('invoiceDate'), 
     'Client' => $this->input->post('invoiceClient'), 
     'Amount' => $this->input->post('invoiceAmount'), 
     'Status' => $this->input->post('invoivceStatus') 
     ); 

     $this->update_site_model->update($id, $data); 
    } 
} 

這是我的更新名稱。它位於站點名稱的文件夾內。

<div id="content"> 

    <ol> 
     <?php foreach ($invoices as $invoice): ?> 
      <li><a href="<?php echo base_url() . "index.php/Update_site/show_invoice_id" . $invoice->invoiceId; ?>"><?php echo $invoice->invoiceId; ?></a></li> 
    </ol> 
     <?php endforeach; ?>  

    </div> 

這就是問題所在。

嚴重性:注意

消息:未定義變量:發票

文件名:網站/ update.php

行號:11

嚴重性:警告

消息:爲foreach提供的參數無效()

文件名:網站/ update.php

行號:11

請幫我解決這個問題。

+1

請選擇一個更具描述性的標題。 – Drux 2015-03-03 10:21:08

+0

請注意,您在foreach語句中使用$發票兩次。你寧願有foreach($發票作爲$發票)? – Rubik 2015-03-03 10:24:06

+0

謝謝親愛的魔方,但這並沒有解決問題仍然是同樣的錯誤對我來說 – 2015-03-03 10:30:18

回答

-1

看看這個控制器:

$data['single_invoice'] = $this->update_site_model->show_invoice_id($id); 

,現在看這個在您的視圖:

<?php foreach ($invoices as $invoice): ?> 

做,你有你的錯誤..?

不.. ..?

讓我告訴你,因爲你正在存儲數據庫結果在$data['single_invoice']你應該在視圖中訪問$single_invoice

在你看來如此正確的用法是:

<?php foreach ($single_invoice as $invoice): ?> 

,下次當你問任何問題給予適當的所有權。

+0

我不知道爲什麼這是被投票。 – 2015-11-24 11:37:05