Следуйте за моим question, где я использовал ответ для генерации данных в моем календаре, который называется календарем обслуживания, отображающим график обслуживания воздушного судна. Это запрос MySQL для него:MySQL внутреннее соединение трех таблиц для использования в календаре
SELECT DISTINCT s.reg AS 'reg',
a.date AS 'date'
FROM (SELECT Curdate()
+ INTERVAL (a.a + (10 * b.a) + (100 * c.a)) day AS Date
FROM (SELECT 0 AS a
UNION ALL SELECT 1
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5
UNION ALL SELECT 6
UNION ALL SELECT 7
UNION ALL SELECT 8
UNION ALL SELECT 9) AS a
CROSS JOIN (SELECT 0 AS a
UNION ALL SELECT 1
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5
UNION ALL SELECT 6
UNION ALL SELECT 7
UNION ALL SELECT 8
UNION ALL SELECT 9) AS b
CROSS JOIN (SELECT 0 AS a
UNION ALL SELECT 1
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5
UNION ALL SELECT 6
UNION ALL SELECT 7
UNION ALL SELECT 8
UNION ALL SELECT 9) AS c) a
INNER JOIN maintenance_sched s
ON a.date >= s.date_from
AND a.date <= s.date_to
WHERE Month(date) = '".$month."'
AND Dayofmonth(date) = '".$dayArray["mday"]."'
AND Year(date) = '".$year."'
Вот maintenance_sched база данных:
И календарь выглядит следующим образом (на основе данных из maintenance_sched):
Затем у меня есть другой календарь, называемый календарем резервирования с тем же кодом, что и основной но с другим запросом. Это запрос календаря бронирования: SELECT acode FROM reservation WHERE month(etd) = '".$month."' AND dayofmonth(etd) = '".$dayArray["mday"]."' AND year(etd) = '".$year."' ORDER BY etd"
.
В таблице заказ это:
И календарь бронирования выглядит следующим образом:
EDIT:
То, что я хочу сделать, это : есть два этих календаря: один календарь с результатом запроса maintenance_sched, выводимого как строка с strikethrough. Но я не могу заставить эти два вопроса работать вместе.
Nice изображений, но любой шанс, что вы можете оставить соответствующий SQL вместо всего этого кода? – Popnoodles
Я замечаю, что вы выполняете mysql_query внутри цикла for. Во-первых, вы не должны использовать mysql_query, поскольку он скоро будет устаревшим, вместо этого используйте mysqli или pdo. Во-вторых, вы обычно должны запрашивать один раз, а затем повторяете свои результаты несколько раз со стороны приложения. На первый взгляд то, что вы написали, кажется крайне неэффективным. –
SQL находятся в коде. Я опубликовал все эти коды для лучшего понимания того, что я пытаюсь сделать. – xjshiya