数组不会填充while循环

时间:2017-12-06 10:55:13

标签: php mysql arrays

我目前正在为一家公司制定计划清单,经过几个小时的努力弄清楚鸭子弄乱了什么,我真的很绝望。

$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
    } 
  }

  • 这不是实际的代码,我只是用if条件重写了while循环
  • 我无法修改表格

  • 它只返回一个工作人员
  • 我试着大喊大叫
  • 我尝试了很多条件(空,等等)

我不太确定,但我认为我需要首先初始化 $ schedule ['Wed'] ['info'] ,但这会很痛苦。

2 个答案:

答案 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 } } 并检查。你应该得到数组中的所有数据。

相关问题