从数据库中获取和更新数据
问题描述:
我想使用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
请帮我解决这个问题。
答
看看这个控制器:
$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
请选择一个更具描述性的标题。 – Drux 2015-03-03 10:21:08
请注意,您在foreach语句中使用$发票两次。你宁愿有foreach($发票作为$发票)? – Rubik 2015-03-03 10:24:06
谢谢亲爱的魔方,但这并没有解决问题仍然是同样的错误对我来说 – 2015-03-03 10:30:18