为什么从Foreach迭代的数组条目中不显示在页面上?

时间:2019-02-04 01:18:10

标签: php

我正在从mysql数据库中查询一些数据,而这一切在blahblah托管的我的网站的实时版本上都可以正常使用。然后,我在本地计算机上重新创建了数据库以进行开发,以便可以处理一些真实数据。我的问题是,在代码的HTML部分中,这给了我

  

注意:未定义索引:已登上

对于尝试回显的每个条目都说这句话。 我知道一个事实,即从中提取的数组确实有一个“已加载”元素,依此类推。

这是阵列转储的第一项。

results.array(101){ [0]=> array(7) { ["boarded"]=>
> string(1) "5" ["stop"]=> string(11) "Anthony - N" ["timestamp"]=>
> string(19) "2019-02-02 19:06:13" ["date"]=> string(10) "2019-02-02"
> ["loop"]=> string(9) "Blue Loop" ["driver"]=> string(5) "Yikes"
> ["id"]=> string(3) "368" }

HTML部分

 <table>
   <tr>
    <th>Boarded</th>
    <th>Stop</th>
    <th>Timestamp</th>
    <th>Date</th>
    <th>Loop</th>
    <th>Driver</th>
    <th>ID</th>
  </tr>
   <? foreach ($log as $logs): ?>
    <tr>
        <td><?= $logs["boarded"] ?></td>
        <td><?= $logs["stop"] ?></td>
        <td><?= $logs["timestamp"] ?></td>
        <td><?= $logs["date"] ?></td>
        <td><?= $logs["loop"] ?></td>
        <td><?= $logs["driver"] ?></td>
        <td><?= $logs["id"] ?></td>
    </tr>
   <? endforeach ?>
  </ul>
  </table>

正在创建的数组

if($result = mysqli_query($con,$sql))
{
  $cr = 0;
  while($row = mysqli_fetch_assoc($result))
  {
    $logs[$cr]['boarded'] = $row['boarded'];
    $logs[$cr]['stop'] = $row['stop'];
    $logs[$cr]['timestamp'] = $row['timestamp'];
    $logs[$cr]['date'] = $row['date'];
    $logs[$cr]['loop'] = $row['loop'];
    $logs[$cr]['driver'] = $row['driver'];
    $logs[$cr]['id'] = $row['id'];
    $cr++;
  }
}

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您的<? foreach ($log as $logs): ?>可能有问题,似乎已经倒退了。

以下在这里工作正常。

<?php
if($result = mysqli_query($con,$sql))
{
  $logs = array();
  while($row = mysqli_fetch_assoc($result))
  {
    array_push( $logs, $row);
  }
}
?>

HTML

<table>
   <tr>
    <th>Boarded</th>
    <th>Stop</th>
    <th>Timestamp</th>
    <th>Date</th>
    <th>Loop</th>
    <th>Driver</th>
    <th>ID</th>
  </tr>
   <?php foreach ($logs as $log): ?>
    <tr>
        <td><?php echo $log["boarded"]; ?></td>
        <td><?php echo $log["stop"]; ?></td>
        <td><?php echo $log["timestamp"]; ?></td>
        <td><?php echo $log["date"]; ?></td>
        <td><?php echo $log["loop"]; ?></td>
        <td><?php echo $log["driver"]; ?></td>
        <td><?php echo $log["id"]; ?></td>
    </tr>
   <?php endforeach; ?>
  </ul>
  </table>