【问题标题】:use two tables from same database in one view codeigniter在一个视图中使用来自同一数据库的两个表
【发布时间】:2015-03-26 10:51:19
【问题描述】:

大家好,我在一个视图中使用来自同一数据库的两个表时遇到问题。当我只使用其中一个表时,它可以工作,但是当我尝试同时获取它们时,我的视图不会加载。这是我的模型:schedule_model.php:

 <?php
    class Schedule_model extends CI_Model {

        public function __construct()
        {            
        }

            public function get_schedules()
            {
                $this->db->select('schedule.id, schedule.name');
                $this->db->from('Schedule');
                $this->db->group_by("schedule.id"); 
                $query = $this->db->get();

                return $query->result_array();
            }

         public function get_subscheds()
            {
                $this->db->select('subsched.id, subsched.name, subsched.enable, subsched.from, subsched.to, subsched.mode, subsched.fcu1, subsched.fcu2, subsched.fcu3, subsched.pon, subsched.vt, subsched.sr, subsched.cet, subsched.pet, subsched.sab, subsched.ned');
                $this->db->from('Subsched');
                $this->db->group_by("subsched.id"); 
                $query = $this->db->get();

                return $query->result_array();
            }


}

?>

这是控制器:schedule.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Schedule extends CI_Controller {
public function __construct()
{
    parent::__construct();
    $this->load->model('schedule_model');
}
public function index()
{
    if(!$this->session->userdata('loggedIn')){
        redirect("login");
    }



    $data['schedules'] = $this->schedule_model->get_schedules();
    //$data['subscheds'] = $this->schedule_model->get_subscheds();

    $this->load->view('schedule', $data); //my view is also named  schedule :)


}
}
?>

请注意,我已经注释了调用从第二个表中获取元素的函数的行。如果我取消注释,我的观点就会冻结。否则它只适用于一张桌子。在我看来,我遍历 foreach 循环中的元素。可能是什么问题呢?谢谢

【问题讨论】:

    标签: php database codeigniter model controller


    【解决方案1】:

    希望这个对你有所帮助..

    $schedules = $this->schedule_model->get_schedules();
    $subscheds = $this->schedule_model->get_subscheds();
    $data['schedules'] = $schedules;
    $data['subscheds'] = $subscheds;
    
    ## and then pass to view.
    $this->load->view('schedule', $data); 
    

    试试这个..我做了一些修改..您可以在您定义的“计划”视图中以 $schedules 的形式访问“schedules”,以 $subscheds 的形式访问“subscheds”。

    【讨论】:

    • 很遗憾,结果还是一样!如果我使用这样的代码,它可以工作$schedules = $this-&gt;schedule_model-&gt;get_schedules(); $data=array('schedules'=&gt;$schedules); $this-&gt;load-&gt;view('schedule', $data);,但是当我再次尝试这两个表时,它卡住了。
    • @Martin k 试试这个公式。我做了一些改变。
    • 感谢您的回答,您的第一个命题和第二个命题都是正确的。我的列名有误。
    【解决方案2】:
    $data['schedules'] = $this->schedule_model->get_schedules();
    $data['subscheds'] = $this->schedule_model->get_subscheds();
    

    这将从 shedules 表和 subsheds 表中加载数据。然后你可以用这些数据加载视图..

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

    现在您可以使用 $data['schedules'] 和 $data['subscheds'] 循环访问 $data,以便在必要时使用 db 字段。

    【讨论】:

      猜你喜欢
      • 2011-03-17
      • 1970-01-01
      • 2015-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-14
      • 1970-01-01
      相关资源
      最近更新 更多