2015-10-04 5 views
-2

У меня есть таблица с D_Number, которая соответствует номеру дня в году.День года в месте где

Date  D_Number  Schedule 
9/24/2015 267   3T 
10/15/2015 288   2R 
11/5/2015 309   PR 

У меня есть следующий запрос.

$day_num=date("z")+1; 

$query_Recordset2 = "SELECT * FROM b_schedule_dates WHERE  
b_schedule_dates.D_Number = $day_num"; 

В принципе, если сегодня было 10/15/2015 или день № 267, график выполнения должен быть 3Т.

У меня есть второй запрос, который ищет расписание для эха.

$day= date('w'); 
$day_num=date("z")+1; 
$sched=$row_Recordset2['Schedule']; 
$d_number=$row_Recordset2['D_Number']; 

if($day_num === $d_number){ 
    $s=$sched; 

}else { 
    $s="2R"; 
} 

if (isset($s)) { 
    $colname_Recordset1 = $s; 
} 

$query_Recordset1 = sprintf("SELECT * FROM b_schedule WHERE b_schedule.Schedule =%s" 

Что я делаю неправильно? Кажется, он не распознает 1-й запрос $ day_num. Я просто хочу, чтобы он соответствовал соответствующему расписанию, если дата происходит, причем каждая дата имеет свой собственный график. Если это не так, просто нужно следовать графику 2R. b_schedule имеет разное расписание с разными начальными и конечными временами, основанными на расписании.

Start  End  Schedule 
8:00:00 9:30:00  3T 
8:00:00 10:30:00 2R 
8:00:00 2:30:00 PR 
+0

Вы пытались помещать кавычки вокруг своей переменной? вы действительно должны посмотреть на параметрирование вашего запроса –

+0

У вас была ошибка вставки? Где находится остальная часть вызова 'sprintf'? – Barmar

+0

Тест 'isset ($ s)' не нужен. 'If ​​/ else' перед этим ** всегда ** устанавливает' $ s'. – Barmar

ответ

0

Вам нужно в кавычки значения, так как это строка:

$query_Recordset1 = sprintf("SELECT * FROM b_schedule WHERE b_schedule.Schedule = '%s'", $s); 

Но вы можете объединить два запроса с объединением, а также использовать функции даты MySQL,.

SELECT * 
FROM b_schedule_dates AS d 
JOIN b_schedule AS s ON s.Schedule = d.Schedule 
WHERE d.D_Number = DAYOFYEAR(NOW()); 
+0

Не работает. Страница довольно сложная. Я сначала следую расписанию, основанному на днях недели с понедельником, когда 1 и пятница равны 2. Затем у меня есть таблица исключений с датами, чтобы отменить график недели. Вот почему у меня есть 2 отдельных запроса, причем запрос 2 зависит от запроса 1. – user3258571

+0

Я не хочу участвовать. Я думал, что могу создать зависимость от запроса 1 для запроса 2. Если бы я хотел ничего другого, кроме как повторить расписание, если сегодня происходит d_number, как бы я это сделал? – user3258571

+0

Вы можете добавить больше к соединению, это просто простой пример. – Barmar