2014-03-05 29 views
1

我這個笨MySQL的代碼創建約會:笨的MySQL停止連續第三插入

if ($this->form_validation->run() == TRUE) 
{ 
    $data = array(
     'startTime' => $startTime , 
     'endTime' => $endTime , 
     'day' => $date , 
     'contact_id' => $this->input->post('InputPatient') 
    ); 

    $this->db->insert('rdv', $data); 
    echo 'Appointment Created Successfully.'; 
} 

我需要的是 - 像晚上8點的具體時間,我不應該創建2個以上預約。在第三次插入具有相同的開始時間時,我應該給出錯誤。

謝謝。

+0

檢查插入後它們有多少個,並在需要時打斷循環。 – Shomz

+0

很好。祝你好運。你有問題嗎? –

回答

0

在這裏,你去。插入之前,請檢查是否已有2次約會的特定時間和日期。

if ($this->form_validation->run() == TRUE) 
{ 
    $data = array(
    'startTime' => $startTime , 
    'endTime' => $endTime , 
    'day' => $date , 
    'contact_id' => $this->input->post('InputPatient') 
); 

    $isAlreadyTwo = $this->db->from("rdv") 
          ->where(array("startTime" => $startTime, "day" => $day)) 
          ->count_all_results() >= 2; 

    if($isAlreadyTwo) 
    { 
    echo "Error!!"; 
    } 
    else 
    { 
    $this->db->insert('rdv', $data); 
    echo 'Appointment Created Successfully.'; 
    } 
} 

希望這有助於:)

+0

Voila !!!解決了我的問題。感謝隊友@IJas。 – Sparkz

+0

接受答案將有助於幫助更多像你這樣的人;) – IJas

1

你做之前你insert你可以做一個select,看看有多少項有具有相同的開始時間。如果少於2則可以繼續進行插入。

$this->db->select('count(*) as count') 
    ->from('rdv') 
    ->where('startTime', $startTime) 
    ->where('day', $date); 
$query = $this->db->get(); 

$aResult = $query->row_array(); 

if($aResult['count'] < 2) 
{ 
    //Do your insert 
} 
+0

感謝@Pattle的幫助。 – Sparkz

+0

@Sparkz沒問題,如果有幫助,請接受答案 – Pattle