在一个视图codeigniter中使用来自同一数据库的两个表

时间:2015-03-26 10:51:19

标签: php database codeigniter model controller

大家好我在一个视图中使用同一个DB中的两个表时遇到问题。当我只使用其中一个表时,它可以工作,但当我尝试获取它们时,我的视图不会加载。这是我的模型: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循环中的元素。可能是什么问题呢?感谢

2 个答案:

答案 0 :(得分:2)

希望这个能帮到你..

$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); 

尝试这个..我做了一些修改。你可以访问&#34;时间表&#34;作为$ schedule和&#34; subscheds&#34;在&#39; schedule&#39;中作为$ subscheds您定义的视图。

答案 1 :(得分:0)

$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字段。

相关问题