@del993788

Как найти диапазон дат из бд и вывести только повторяющиеся?

Здравствуйте. Есть вот такой код.
$nnomer = $_POST['nnomer'];
const SQL_GET_MENU_ITEM = '
SELECT datestart, dateend FROM main WHERE namenomer = :namenomer
';
try{
$pdo = new PDO("mysql:host=127.0.0.1;dbname=module;charset=utf8","root","");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stmt = $pdo->prepare(SQL_GET_MENU_ITEM);
$res = $stmt->execute([':namenomer' => $nnomer]);
$row = json_encode($stmt->fetchAll(PDO::FETCH_OBJ));
echo "$row";
}catch(PDOException  $e ){
exit( $e->getMessage());
}

Бд выглядит у меня вот таким образом:
1df143df96a548ca8a433400417fad81.PNG
Принцип работы скрипта: С сайта уходит ajax запрос с $_POST['nnomer']; (он равен lux), php подставляет его в pdo запрос к бд и достаёт ответ. Ответ - первая и последняя дата из диапазона дат. В моём случае ответ такой:
[{"datestart":"2016-11-29","dateend":"2016-12-03"},{"datestart":"2016-12-01","dateend":"2016-12-05"}]

Всего дат 4, но по факту их будет больше.
Так вот. Подскажите, как через php найти повторяющиеся даты? В моём случае повторяющиеся даты это: 2016-12-01, 2016-12-02 и 2016-12-03. Такое вообще возможно сделать?
  • Вопрос задан
  • 208 просмотров
Пригласить эксперта
Ответы на вопрос 1
R0dger
@R0dger
Laravel/Yii/2 AngularJs PHP RESTful API
Пишите запрос где группируете даты и выводите где count > 2
аля что то такое
select count(datestart) as cnt, datestart FROM youTable
GROUP BY datestart
HAVING cnt > 1


условие дополните сами.. что бы between был уже
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы