我目前正在为一家公司制定计划清单,经过几个小时的努力弄清楚鸭子弄乱了什么,我真的很绝望。
$schedule = [];
$result = mysql_query("SELECT *
FROM schedule s
INNER JOIN workers w
ON s.worker_id = w.id BETWEEN [date1] AND [date2]");
while ($row = mysql_fetch_array($result)) {
if(($row['s.time'] >= '8:00') && ($row['s.time'] < '20:00')) {
if($schedule[$row['s.date']]['info']['name'] == '') {
$schedule[$row['s.date']]['info']['name']
= $row['w.name']; // Just one worker
} else {
$schedule[$row['s.date']]['info']['name'] .= ',' . $row['name'];
// IF there is one or more workers, "join" them together by comma
}
}
否
是
我不太确定,但我认为我需要首先初始化 $ schedule ['Wed'] ['info'] ,但这会很痛苦。
答案 0 :(得分:0)
这不是实际的代码
我们只能根据the code you posted提供建议。
虽然代码有很多错误,但是它不循环的原因是SELECT语句是不可解析的。 问题是您无法在代码中看到SELECT语句失败。您的代码中没有错误检查。
答案 1 :(得分:0)
尝试这种方式:
object
然后if(($row['s.time'] >= '8:00') && ($row['s.time'] < '20:00')) {
if(in_array($row['w.name'], $schedule)) { // Checking if the value already exists in array.
$schedule[][$row['s.date']]['info']['name']
= $row['w.name']; // Just one worker
} else {
$schedule[][$row['s.date']]['info']['name'] .= ',' . $row['name'];
// IF there is one or more workers, "join" them together by comma
}
}
并检查。你应该得到数组中的所有数据。