php - 如何通过 select 和 foreach 过滤日期?
问题描述
我想知道我该怎么做才能只保留第一个选择的日期并从另一个选择中删除另一个但没有 DELETE 它就像只是将它保存在一个变量中。
我已经尝试过做一个 foreach 但我不明白该怎么做。
function generateRestaurant($pdo){
echo "generateRestaurant()";
$startTime = mktime(0, 0, 0, date('n'), date('j')+1, date('Y')) - ((date('N'))*3600*24);
$dateDebut = date('Y-m-d', $startTime);
$dateFin = date('Y-m-d');
$query = 'SELECT * FROM events as e
LEFT JOIN restaurants as r ON e.restaurant_id = r.id_restaurant
WHERE jour >= '.$dateDebut.' AND jour <= '.$dateFin.' ';
$prep = $pdo->prepare($query);
$prep->execute();
echo $query;
print_r($datas);
selectRestaurants($pdo);
}
选择餐厅功能:
function selectRestaurants($pdo){
$query = 'SELECT * FROM restaurants as r
LEFT JOIN types as t ON r.type_id = t.id_type
LEFT JOIN agences as a ON r.agence_id = a.id_agence'; // Tous les éléments de ta table => TABLEAU
$prep = $pdo->prepare($query);
$prep->execute();
$datas = $prep->fetchAll(PDO::FETCH_ASSOC);
return $datas;
}
数据库:
agences : not used in this example.
events : id_event --- restaurant_id --- jour.
restaurants : id_restaurant --- nom --- type_id --- lieu --- agence_id --- horaire --- tickets.
types : not used in this example.
users : not used in this example.
我需要的是通过我的第一个选择过滤它们并删除另一个只保留我想要的日子来获得本周的餐厅。
这是一个算法,通过使用 FullCalendar 和我们在几周内已经吃过的东西来生成我们将在哪里吃饭,而不是在两天内在同一家餐厅和餐厅类型中用餐。
编辑
我没事,我的问题已经解决了。
这里的解决方案:
函数生成餐厅($pdo){
setlocale (LC_TIME, 'fr_FR.utf8','fra');
$startTime = mktime(0, 0, 0, date('n'), date('j')+1, date('Y')) - ((date('N'))*3600*24);
$dateDebut = date('Y-m-d', $startTime);
$dateFin = date('Y-m-d');
$query = 'SELECT * FROM events as e
LEFT JOIN restaurants as r ON e.restaurant_id = r.id_restaurant
WHERE e.jour >= "'.$dateDebut.'" AND e.jour <= "'.$dateFin.'" ';
$prep = $pdo->prepare($query);
$prep->execute();
$restaurantsSemaine = $prep->fetchAll(PDO::FETCH_ASSOC);
$restaurants = selectRestaurants($pdo);
$currentDay = strftime("%A");
foreach($restaurants as $key => $data){
$currentIdRestaurant = $data['id_restaurant'];
foreach($restaurantsSemaine as $restaurant){
if($currentIdRestaurant == $restaurant['id_restaurant']){
unset($restaurants[$key]);
}
}
if($data[$currentDay] == 0 && isset($restaurants[$key])){
unset($restaurants[$key]);
}
}
shuffle($restaurants);
return reset($restaurants);
}
解决方案
推荐阅读
- spring - Spring cloud config客户端找不到PropertySource
- apache-spark - Apache Spark 如何对大文件的数据进行分区
- java - 我可以在 Web 视图(android)中将 Applet 放入 html 代码中吗
- python - 调用存储函数或过程不会插入和保留更改
- javascript - 根据所选选项 javascript 动态更改跨度文本
- javascript - React:第一次,未定义的错误,但重新加载后,它成功
- python - UnicodeDecodeError:“utf8”编解码器无法解码位置 51 中的字节 0x89:无效的起始字节
- mysql - 将 int 从类插入数据库(mysql)
- vue.js - 计算属性未定义,虽然它是......定义 - vue.js
- npm - 通过 npm 使用 socket.io 时 HTML 中出现“Unexpected Token <”错误