Php 显示我的查询的正确方式
我的模型中有一个查询,需要在视图中打印数据 模型 我试图在我的模型中打印输出,但它不起作用,我不知道哪里出了问题。我是MVC的新手,现在仍然习惯了 看法Php 显示我的查询的正确方式,php,mysql,codeigniter,Php,Mysql,Codeigniter,我的模型中有一个查询,需要在视图中打印数据 模型 我试图在我的模型中打印输出,但它不起作用,我不知道哪里出了问题。我是MVC的新手,现在仍然习惯了 看法 加载视图时,您正在传入$data,其中包含要显示的数据的$data['records'] 由于这是加载数据时将数据传递到视图的方式,因此需要以这种方式调用它: <?php var_dump($records); ?> 假设$records是一个查询结果数组,或者使用var_dump而不是print来验证数据是否存在,您还需要
加载视图时,您正在传入$data,其中包含要显示的数据的$data['records'] 由于这是加载数据时将数据传递到视图的方式,因此需要以这种方式调用它:
<?php
var_dump($records);
?>
假设$records是一个查询结果数组,或者使用var_dump而不是print来验证数据是否存在,您还需要遍历数据
通读这些内容将有助于向前迈进:
让我们首先按照适当的约定编写代码 模型 看法 不确定您试图对银行数据做什么,但以下是您打印记录的方式
<p>Bank data</p>
<p><?=isset($records['differenceInMonth'])?$records['differenceInMonth']:"No record found"?></p>
您不远,请这样做: 控制器:
function index()
{
$this->load->model('user_profile/profiles_model');
$data = $this->profiles_model->get_bank();
$this->load->view('profile_view', $data);
}
型号:
function get_bank()
{
$query = $this->db->query("SELECT
(
12* (YEAR('account_add_date') - YEAR('start_date')) +
(MONTH('account_add_date') - MONTH('start_date'))
) AS differenceInMonth
->FROM ('bank')
WHERE mem_id = '".$this->session->userdata('id')."'");
return $query->result();
}
视图:
get_bank方法实际上并没有返回任何内容。这是有意的吗?所以我应该在我的视图中调用get_bank$this->model'get_bank',一秒钟后我会更新我的问题您是否使用MVC框架?嗯,不。我认为get_bank的定义中缺少一个返回语句。因此,$data['records']在您的控制器中将为空,$age中没有任何内容可供视图显示。@SamA yesCodeigniter@Beep从模型中删除了一行。我不确定视图中的迭代是否真的需要。如果我理解正确的话,似乎最多只能有一个结果。是的,这是不必要的。更新了,谢谢,我正在努力now@Beep. 更新控制器以使用行数组而不是结果数组,因为它是一行。谢谢,伙计,只是尝试一下前面的一个答案,但如果不起作用,我会尝试这个+1
function get_bank() {
$mem_id = $this->session->userdata('id');
$query = $this->db
->select("12*(YEAR('account_add_date') - YEAR('start_date')) + (MONTH('account_add_date') - MONTH('start_date')) AS differenceInMonth")
->where('mem_id', $mem_id)
->get('bank');
return $query;
// $data['account_age'] = $query->row_array(); <-- Statement after return is useless.
}
function index() {
$data = array(
'records' => array()
);
$this->load->model('user_profile/profiles_model');
$bank = $this->profiles_model->get_bank();
if($bank->num_rows()){
$data['records'] = $bank->row_array();
}
$this->load->view('profile_view', $data);
}
<p>Bank data</p>
<p><?=isset($records['differenceInMonth'])?$records['differenceInMonth']:"No record found"?></p>
function index()
{
$this->load->model('user_profile/profiles_model');
$data = $this->profiles_model->get_bank();
$this->load->view('profile_view', $data);
}
function get_bank()
{
$query = $this->db->query("SELECT
(
12* (YEAR('account_add_date') - YEAR('start_date')) +
(MONTH('account_add_date') - MONTH('start_date'))
) AS differenceInMonth
->FROM ('bank')
WHERE mem_id = '".$this->session->userdata('id')."'");
return $query->result();
}
<?php
foreach(differenceInMonth AS $age){
echo "<p>" . $age . "</p>";
}