尝试从2个表Codeigniter中获取数据时出错 [英] Error trying to fetch data from 2 tables codeigniter

查看:73
本文介绍了尝试从2个表Codeigniter中获取数据时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须从2个表中获取数据。我的表是 Study, Users和 Study。和主题

I gotta fetch data from 2 tables.. My tables are "Study","Users" and "Subjects"


学习包括:(id,user_id [是表 Users的列 id的外键],subject_id [是表 Subjects的列 id的外键。 ],年级,日期)

用户包括:(ID,用户名,名称,姓氏,密码,类型,状态,日期)

主题;包括:(编号,职业编号,姓名,描述,工作时间)

我想在结尾处得到以下内容:

I wanna get something like this at the end:

我遇到了以下错误:

这是我的代码:
我的视图文件( home):

Here is my code: My view file ("home"):

    <html>

    <head>
        


    </head>

<body>

    <div class="container"> 
    <div class="row">
    <div class="col-md-12">

        <h2 align="center">TABLE:Study</h2>
        
        <input id="busqueda_tabla" type="text">
            <table class="table table-hover" align="center" border="1" cellspacing="0" cellpadding="0" width="700" id="tabla_busqueda">
                <thead>
                    <th>id</th>
                    <th>User</th>
                    <th>Subject</th>
                    <th>Grade</th>
                    <th>Date</th>
                    <th>Action</th>
                </thead>

<tbody>
    <?php

    if (count($records) > 0 && $records != false) {
        foreach($records as $record) {
            
            echo "<tr>
                      <td>".$record['id']."</td>
                      <td>".$record['user']."</td>
                      <td>".$record['subject']."</td>
                      <td>".$record['grade']."</td>
                      <td>".$record['date']."</td>
                      <td align='center'>
                         
                         <button type='button' class='btn btn-primary'>EDITAR</button></a> |
                    
                         <button type='button' class='btn btn-danger'>BORRAR</button></a>

                  </tr>";
        }

       }
    ?>

</tbody>

    </table>

        </div>
        </div>
        </div>

</body>
</html>

这是我的控制器文件(主页):

Here is my Controller file ("Home"):

    <?php

    class Home extends CI_Controller{

         public function __construct(){
             parent::__construct();

             $this->load->model("Crudmodel");

        }


        public function index(){

    # get all data in Study table
    $selectStudys = $this->Crudmodel->selectStudys();

    foreach ($selectStudys as $key => $study) 
    {
        # get UserNames
        $user = $this->Crudmodel->getName($study['user_id']);

        #get Subject Names
        $subject = $this->Crudmodel->getSubName($study['subject_id']);


        #append both NEW VALUES to same array


        $data[$key]['user_id'] = $user[0]['username'];
        $data[$key]['subject_id'] = $subject[0]['name'];

    }


    $data['records'] = $selectStudys;
    $this->load->view('home', $data);

}



   }
    
?>

和我的模型文件( Crudmodel):

And my Model file ("Crudmodel"):

  <?php

    class Crudmodel extends CI_Model{

        public function __construct(){
         parent::__construct();

         $this->load->database();

        }


        function selectStudys()
{
    $query= $this->db->query("SELECT * FROM Study");
    $result = $query->result_array();
    return $result;
}

function getName($name)
{
    $query= $this->db->query("SELECT username FROM Users WHERE id = $name ");
    $result = $query->result_array();
    return $result;
}

function getSubName($subject)
{
    $query= $this->db->query("SELECT name FROM Subjects WHERE id = $subject ");
    $result = $query->result_array();
    return $result;
}








}
?>

希望你能帮助我:/

推荐答案

我将查询更改为联接查询,只需将代码更改为以下

Iam changed your query to join query, Simply change your code to below

public function index(){

    # get all data in Study table

    $query = $this->db->query("SELECT sd.user_id as id,sd.grade as grade,sd.date as date,sd.subject_id as subject,ur.username as user FROM Study as sd,Users as ur,Subjects as sb WHERE ur.id=sd.user_id and sb.id=sd.subject_id");

    $result = $query->result_array();

    $data['records'] = $result;

    $this->load->view('home', $data);

}

现在运行代码

这篇关于尝试从2个表Codeigniter中获取数据时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆