【问题标题】:Display Multiple appointement per day from database in html table在 html 表中显示每天从数据库中的多个约会
【发布时间】:2016-03-23 10:42:17
【问题描述】:

我使用 Codeigniter 3 和 bootstrap 3,我在数据库中有一个表 RDV(医生预约)我想在数据库的视图中显示医生预约。 我希望输出应该是这样的:

----------------------------------------------------------------------------
|DATE               | TIME               | EVENT         | PATIENT        |
----------------------------------------------------------------------------
|2016-06-13         | 03:28              |Consultation   |IHAB BARI       |
----------------------------------------------------------------------------
|                   | 05:00              |Viste          |ISSHAK KOMA     |
----------------------------------------------------------------------------
|                   | 06:15              |Esthetique     |ABASS DOSSO     |
----------------------------------------------------------------------------
|2016-07-17         | 08:10              |Visite         |KOKO TASSI      |
----------------------------------------------------------------------------

数据库中的表:ID |日期 | HEURE_RDV | MOTIF_RDV |病人 | DETAIL_RDV

在一个模型中我有这个代码:

public function rdv_selectAll_mdl()
{

    $query = $this->db->get('rdv');
    return $query;
}

在控制器中:

public function rdv_selectAll()
{

    $this->load->model('calender_model');

    $query = $this->calender_model->rdv_selectAll_mdl();
    $data = array();
    foreach ($query->result() as $row) {
        $data[$row->dateRdv][] = $row->heureRdv;
        $data[$row->dateRdv][] = $row->patientRdv;
        $data[$row->dateRdv][] = $row->motifRdv;
        $data[$row->dateRdv][] = $row->detailRdv;
    }

    $this->load->view('gs_calender');

}

使用此控制器,我尝试将时间和事件以及患者和详细信息放在一个日期我不确定它是否正确,我考虑使用多维数组将多行放在一行中并使用 html 中的行跨度表,如果它正确,如何循环查看任何人都可以帮助我解决问题。

【问题讨论】:

    标签: arrays codeigniter multidimensional-array


    【解决方案1】:

    你为什么不这样做:

    $data['rdv'] = $query->result_array(); 
    $this->load->view('gs_calender',$data);
    

    然后在视野内

    foreach($rdv as $r){
    //echo your columns for every row 
    }
    

    或者如果你想让这个更好,你可以使用表格库,在这里查看:

    https://ellislab.com/codeigniter/user-guide/libraries/table.html

    使用表格库,您可以执行以下操作:

    $this->load->library('table');
    
    //add bootstrap class to table 
    $tmpl = array ( 'table_open'  => '<table class="table">' );
    $this->table->set_template($tmpl);
    
    //get your table
    $data['rdv'] = $query->result_array();
    
    //add table th
    $this->table->set_heading('Date','Time','Event','Patient');
    
    //loop inside of results
    foreach($data['rdv'] as $t){
                $this->table->add_row($t['date'],$t['time'],$t['event'],$t['patient']);
            }
    
    //generate table and pass it to view
    $data['table'] = $this->table->generate();
    $this->load->view('gs_calender',$data);
    

    然后在视图内部做

    echo $table;
    

    编辑评论内的问题:

    $daterd="";
        //loop inside of results
        foreach($data['rdv'] as $t){
    
      if($daterd == $t['dateRdv']){  
           $t['dateRdv'] = "";
                    } 
      else {$daterd = $t['dateRdv'];}
    
    $this->table->add_row($t['dateRdv'],$t['heureRdv'],$t['patient_id'],$t['detailRdv']);
                        $t['dateRdv']="";
    
    
                }
    

    【讨论】:

    • 提前感谢您的回复,我认为输出日期将在每一行重复,我想要一个日期和多个事件,如果我错了请告诉我如何循环查看跨度>
    • 再读一遍我的答案,我编辑了一些东西,为了让你循环查看,你必须通过$data['rdv'] = $query-&gt;result_array(); 来查看$this-&gt;load-&gt;view('gs_calender',$data);
    • 正如我告诉你的,每行重复的列日期
    • 我想使用 rowspan 在同一日期显示 2 行
    • 您可以在foreach的末尾添加变量$date = $r['date'],在foreach的开头您可以询问if($date == $r['date']) { echo "&lt;td&gt;".$r['date']."&lt;/td&gt;";} else { echo "&lt;td&gt;&lt;/td&gt;"},并且您必须在输入foreach之前添加$date="";
    猜你喜欢
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2021-04-07
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多