gpt4 book ai didi

php - 将具有相同值的 SQL 输出分组

转载 作者:行者123 更新时间:2023-11-30 00:57:02 25 4
gpt4 key购买 nike

我正在尝试创建一个显示商店开业的脚本。我希望这些职位空缺列在其他空缺职位下方。例如,如果星期一、星期二和星期三的开放时间完全相同,我希望将其分组如下:

<小时/>

周一至周三:12:00-15:00

周四:13:00-15:00

周五:10:00-18:00

周六:12:00-18:00

周日:14:00-18:00

<小时/>

按工作日输出时效果很好,但我不知道如何以相同的开放时间对工作日进行“分组”。

我尝试使用 if($time == $time) 但没有成功。我没有任何其他想法如何做到这一点。

我不想从表本身获取工作日名称。这就是为什么我创建了 $weekdays 数组,以便我可以直接在代码中更改工作日名称。

我还需要将工作日名称和开放时间放在单独的范围内。

这是我的 SQL 表:

ID |     mon      |     tue      |     wed      |     thu      |     fri      |     sat      |     sun      
1 12:00-15:00 12:00-15:00 12:00-15:00 13:00-15:00 10:00-18:00 12:00-18:00 14:00-18:00

这是我当前的 PHP 代码:

$get_openings = mysql_query("SELECT * FROM openings WHERE NC_Id='1'");
while($days = mysql_fetch_array($get_openings)) {

// Loads time only from database
$mon = $days['mon'];
$tue = $days['tue'];
$wed = $days['wed'];
$thu = $days['thu'];
$fri = $days['fri'];
$sat = $days['sat'];
$sun = $days['sun'];

$weekdays = array('monday','tuesday','wednesday','thuesday','friday','saturday','sunday');
$times = array($mon,$tue,$wed,$thu,$fri,$sat,$sun);

$i = 0;
foreach($times as $time) {

while ($i <= 6) {

if($time == "") {
echo $weekdays[$i++].": "."Closed<br>";
}

else {
echo $weekdays[$i++].": ".$time."<br>";
}
}
}
}

有人可以帮我吗?

谢谢 - 杰斯珀

最佳答案

1) 定义$weekdays在 while 循环之外,因为它不会改变

2) 定义$mon , $tue ...然后在 $times 内再次收集它们是没有意义的。您可以直接使用 fetch 语句中的命名数组。

$weekdays = array('mon','tue','wed','thu','fri','sat','sun');
$get_openings = mysql_query("SELECT * FROM openings WHERE NC_Id='1'");

while($days = mysql_fetch_array($get_openings)) {

$result = array();
foreach($weekdays as $day){
$time = $days[$day]==''?'closed':$days[$day];
if(count($result)>0 and $result[0][1]==$time){
$result[0][0] = substr($result[0][0],0,3) . '-' . $day;
} else {
array_unshift($result,array($day,$time));
}
}
$result = array_reverse($result);
/* add code to display $result here */
}

在每个循环中$result是一个包含日期名称和开放时间的数组。例如:array(array('mon-wed','12:00-15:00'),array('thu',...),...) */

关于php - 将具有相同值的 SQL 输出分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20460628/

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