Я построил сайт, чтобы вставить мои рабочие часы как даты.
Существует запрос Ajax на запрос .Change () в зависимости от (Тип ввода = «текст»).
Перед запросом в PHP я создаю предложение where в отношении этого поля ввода.
Это поле ввода теперь может содержать такие значения, как:
Лучшие результаты, касающиеся некомментированного предложения. Прокомментированный результат будет неправильным или NULL.
$sd = explode("#",$this->prFilter[$pKey]);
if(1 < count($sd)){
// $this->prArr[$pKey] = " AND t.start LIKE '%".$sd[0]."%' AND t.end LIKE '%".$sd[1]."%'";
// $this->prArr[$pKey] = " AND t.start >= '{$sd[0]}' AND t.end <= '{$sd[1]}'";
$this->prArr[$pKey] = " AND t.start >= '{$sd[0]}' AND t.start <= '{$sd[1]}'";
// $this->prArr[$pKey] = " AND DATE(t.start) BETWEEN CAST('{$sd[0]}%') AND CAST('{$sd[1]}%')";
}
else {
$this->prArr[$pKey] = " AND t.start LIKE '%".$this->prFilter[$pKey]."%'";
}
В будущем это будет использоваться сотрудниками тоже. Так что будет много записей.
Я хотел бы рабочий запрос MySQL и не добавлять слишком много PHP и сократить время / ресурсы.
Вводный запрос:
SELECT t.idTime, p.idProject, t.idCustomer, a.idAddress,
a.city, t.info, t.status, p.descriptionProject,
cu.shortnameCustomer, cu.invoiceAddress, p.nr, t.start,
t.end, t.manBreak, t.trip, p.totalBreak,
p.inRate, p.outRate, p.startBreak1, p.endBreak1,
p.startBreak2, p.endBreak2, DATE_FORMAT(`end`, "%m") AS month,
DATE_FORMAT(`start`, "%Y-%m-%d") AS startdatum, DATE_FORMAT(`start`, "%H:%i:%s") AS startzeit,
DATE_FORMAT(`end`, "%Y-%m-%d") AS enddatum, DATE_FORMAT(`end`, "%H:%i:%s") AS endzeit,
TIMEDIFF(`end`, `start`) AS differenz
FROM time t
LEFT JOIN project p ON (t.idProject=p.idProject) LEFT JOIN address a ON (t.idAddress=a.idAddress)
LEFT JOIN customer cu ON (cu.idCustomer=t.idCustomer)
WHERE TIMEDIFF(`end`, `start`) IS NOT NULL
AND t.idUser=1 AND t.start >= '2016-05-01' AND t.start <= '2016-08-29'
ORDER BY start DESC;
Как установить предложение WEHRE, чтобы получить все требуемые записи?
Задача ещё не решена.
Других решений пока нет …