Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示我的查询的正确方式_Php_Mysql_Codeigniter - Fatal编程技术网

Php 显示我的查询的正确方式

Php 显示我的查询的正确方式,php,mysql,codeigniter,Php,Mysql,Codeigniter,我的模型中有一个查询,需要在视图中打印数据 模型 我试图在我的模型中打印输出,但它不起作用,我不知道哪里出了问题。我是MVC的新手,现在仍然习惯了 看法 加载视图时,您正在传入$data,其中包含要显示的数据的$data['records'] 由于这是加载数据时将数据传递到视图的方式,因此需要以这种方式调用它: <?php var_dump($records); ?> 假设$records是一个查询结果数组,或者使用var_dump而不是print来验证数据是否存在,您还需要

我的模型中有一个查询,需要在视图中打印数据

模型

我试图在我的模型中打印输出,但它不起作用,我不知道哪里出了问题。我是MVC的新手,现在仍然习惯了

看法


加载视图时,您正在传入$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>";

}