codeigniter mysql查询输出数据显示具体条件

时间:2014-03-05 19:20:13

标签: php mysql codeigniter

以下代码:

Controller.php这样

function getchart() {
$prac = $this->input->post('prac_name');
$datee = $this->input->post('datee');
$this->load->model('appoint');
$results['appoint'] = $this->appoint->getappoint($prac , $datee);
$this->load->view('ajax/getappchart' , $results);
}

model.php

function getappoint($prac , $datee) {
        $this->db->select('rdv.id as rdvid, startTime, endTime, day, firstname, lastname');
        $this->db->from('rdv');
        $this->db->join('contact', 'contact.id = rdv.contact_id');
        $this->db->where('people_id',$practicien);
        $this->db->where('DATE(day)', $datee);
        $this->db->order_by('TIME(startTime)', 'ASC'); 
        $query = $this->db->get();
        //print_r($this->db->last_query());
        return $query;
    }

view.php

if ($appoint->num_rows() > 0) {
        foreach($appoint->result() as $sub_row)
        {
// display output.
}
    } else {
        echo 'No Appointments on Above Date.';
    }
    ?>

我需要的是,有相同时间和一天的约会(大多数是2相同)。 如果还有2个,我需要为这两个约会设置两种不同的班级风格。 我怎么能做到这一点?

感谢。

3 个答案:

答案 0 :(得分:1)

最终答案:在@ minhaz-ahmed的帮助下完成

if ($appoint->num_rows() > 0) {
    $appoint_counter = array();
    foreach ($appoint->result() as $sub_row) {
        //i am assuming your startTime is H:M:S, and  day Y-M-D format 
        $key = strtotime($sub_row['day'] . ' ' . $sub_row['startTime']);
        if (!isset($appoint_counter[$key])) {
            $appoint_counter[$key] = 0;
        }
        $appoint_counter[$key] ++;
        $style_class = 'YOUR_1ST_CLASS';
        if ($appoint_counter[$key] > 2) {
            $style_class = 'YOUR_2ND_CLASS';
        }

       //REST VIEW CODE
   }
} 
else {
    echo 'No Appointments on Above Date.';
}

答案 1 :(得分:0)

你可以这样做

   if ($appoint->num_rows() > 0) {
        $appoint_counter = array();
        foreach ($appoint->result() as $sub_row) {
            //i am assuming your startTime is H:M:S, and  day Y-M-D format 
            $key = strtotime($sub_row['day'] . ' ' . $sub_row['startTime']);
            if (!isset($appoint_counter[$key])) {
                $appoint_counter[$key] = 0;
            }
            $appoint_counter[$key] ++;
        }
        foreach ($appoint->result() as $sub_row) {
            //i am assuming your startTime is H:M:S, and  day Y-M-D format 
            $key = strtotime($sub_row['day'] . ' ' . $sub_row['startTime']);

            $style_class = 'YOUR_1ST_CLASS';
            if ($appoint_counter[$key] > 2) {
                $style_class = 'YOUR_2ND_CLASS';
            }

           //YOUR REST VIEW
        }
    } else {
        echo 'No Appointments on Above Date.';
    }

答案 2 :(得分:0)

你的课堂风格是什么意思?无论如何,下面的代码假定您将结果放在数据网格中。

$prev_date = "";
$prev_time = "";

$results = $query->result();
foreach($results as $appointment) {

    if ($prev_date != $appointment->day) // Assuming "day" is tables date
        # Display output here

    if ($prev_time != $appointment->startTime) // Logically, display should sort appointments by their starting time
        # Display output here

    # Display appointment rows here

    $prev_date = $appointment->day;
    $prev_time = $appointment->startTime;
}

if (empty($results)) {
    # Display "no appointments found" output here
}