Извличане и актуализиране на данни от база данни

Искам да извличам и актуализирам данни от база данни с помощта на codeigniter. Изправен съм пред някакъв проблем. Това е моят код:

Това е моят модел с името 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="/bg<?php echo base_url() . "index.php/Update_site/show_invoice_id" . $invoice->invoiceId; ?>"><?php echo $invoice->invoiceId; ?></a></li>
    </ol>
        <?php endforeach; ?>    

    </div>

и това е проблема.

Тежест: Забележка

Съобщение: Недефинирана променлива: фактури

Име на файла: site/update.php

Номер на ред: 11

Сериозност: Предупреждение

Съобщение: Невалиден аргумент, предоставен за foreach()

Име на файла: site/update.php

Номер на ред: 11

Моля, помогнете ми да реша проблема.


person Khan Ahmad    schedule 03.03.2015    source източник
comment
Моля, изберете по-описателно заглавие.   -  person Drux    schedule 03.03.2015
comment
Внимавайте, използвате $invoice два пъти във вашия foreach отчет. Предпочитате foreach($invoice като $invoices)?   -  person Rubik    schedule 03.03.2015
comment
Благодаря, скъпи Рубик, но това не реши проблема, но все пак същата грешка идва за мен   -  person Khan Ahmad    schedule 03.03.2015


Отговори (1)


Вижте това в контролера си:

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

а сега погледнете това от своя гледна точка:

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

разбрахте ли грешката си..?

no..?

нека ви кажа, тъй като съхранявате резултата от базата данни в $data['single_invoice'], трябва да получите достъп до това чрез $single_invoice в изгледа.

така че правилното използване според вас е:

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

и следващия път, когато зададете някакъв въпрос, дайте подходящо заглавие към него.

person Vasanth Hegde    schedule 24.09.2015