2014-01-22 2 views
1

Я работаю над веб-приложением, используя структуру Yii, в форме, которую я даю два раза в качестве ввода, а в контроллере я должен искать доступные временные интервалы между временем начала и конечное время из другой таблицы, которая имеет все 5 минут интервальных временных интервалов и вот мой код, который получает ошибку SQLYii Searing and Sorting time slots from A table

     $st = $_POST['Slots']['start_time']; 
        $et = $_POST['Slots']['end_time'];       
        $resslots = DoctorTimeSlots::model()->findAllByAttributes(
          array(), 
          "time_slots < $et AND >=$st", 
          array('time_slots'=>time('H:i:s'))); 
+0

Какая ошибка sql вы получаете? –

+0

DCbCommand не выполнил инструкцию SQL: SQLSTATE [HY093]: Недопустимый номер paameter: Число связанных переменных не совпадает с числом токенов. Выбранный оператор SQL: SELECT * FROM 'doctor_time_slots' 't' WHERE 't'. 'S_no' =: yp0 AND (time_slots <14:00:00 AND> = 13: 00: 00), это из-за array (s_no => 10000), и теперь я получаю два временных интервала в $ resslots, а не то, что я ожидал – user1799171

+0

надеюсь, что мой ответ устранил вашу проблему. –

ответ

1

попробовать этот код:

Вы отсутствует имя столбца в состоянии "time_slots < $et AND >=$st",

$resslots = DoctorTimeSlots::model()->findAllByAttributes(
     array(), 
     $condition = 'time_slots < :et AND time_slots >= :st', 
     $params  = array(
       ':et' => $et, 
       ':st' => $st, 
     ) 
);