gpt4 book ai didi

php - 对 HTML/PHP 表 MYSQL 中的结果进行分类

转载 作者:行者123 更新时间:2023-11-30 22:45:29 25 4
gpt4 key购买 nike

我有两个表,dishesdays_avail,其中 dishes 包含有关 cooking 菜肴的信息,days_avail 包含某道菜哪几天有空。

days_avail 如下所示:

daysid || dishid || monday || tuesday || wednesday || friday

daysid:唯一标识

dishid:菜品表中的菜品 ID

周一至周五: bool 值

所以,我能做的就是拉出盘子并显示相关信息以及可用日期。然而,我想要完成的是按可用日期对菜肴进行分类。所以像这样:

Monday
dish name
dish desc desc desc

Tuesday
Dish name
dish desc dish desc

我的查询如下:

$sql = "SELECT * FROM dishes JOIN days_avail ON days_avail.dishid = dishes.id WHERE user_id = :cookid ORDER BY days_avail.daysid";
try {
$stmt = $db->prepare($sql);
$stmt->execute(array(
':cookid' => $cookid
));
}
catch(Exception $error) {
echo '<p class="bg-danger">', $error->getMessage(), '</p>';
}

while($row = $stmt->fetch()) {
$dish_name = $row['dish_name'];
$dish_desc = $row['dish_desc'];
$dish_price = $row['dish_price'];
$mon = $row['Monday'];
$tues = $row['Tuesday'];
$wed = $row['Wednesday'];
$thurs = $row['Thursday'];
$fri = $row['Friday'];
}

我无法在一天之内将菜肴分组。我曾尝试使用 if 语句(例如:if($mon == 1) { echo "Monday//dish_info, etc"}),但这会导致每道菜的标题重复。

我也曾尝试使用 java handlebars 或多或少地运行查询,然后简单地将结果“填充”到(适当的)div 框中,但没有成功。

我在这里完全迷路了。我将不胜感激任何帮助。

谢谢

最佳答案

您可以根据可用日期将返回的行放入一个数组中来做到这一点-

...your query code...

$days=array('Monday'=>array(),'Tuesday'=>array(),'Wednesday'=>array(),'Thursday'=>array(),'Friday'=>array());

while($row = $stmt->fetch()) {
foreach($days as $day=>$array){
if($row[$day]){
$days[$day][]=array('dish_name'=>$row['dish_name'],
'dish_desc'=>$row['dish_desc'],
'dish_price'=>$row['dish_price']);
}
}
}

现在只需遍历您的 $days 数组

foreach($days as $day => $dishes){
echo "<h2>$day</h2>";
foreach($dishes as $dish){
echo $dish['dish_name']."<br />";
echo $dish['dish_desc']."<br />";
echo $dish['dish_price']."<br />";
}
}

关于php - 对 HTML/PHP 表 MYSQL 中的结果进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29735843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com