使用while循环查询实时数据库

时间:2014-04-27 13:33:12

标签: php mysql pdo while-loop

我目前正在为基于Raspberry Pi和Arduino的Scalextric遥测系统开发用户界面。系统在轨道周围使用一系列光传感器,这些传感器的输出插入到mySQL数据库中。

根据这些数据,我需要显示比赛统计数据。例如,如果汽车在轨道开始处经过光传感器,则当前圈增加1。我为此编写了以下代码:

    <?
$currentLap = 1;
$checkpointTime = '';
$checkpointNumber = '';
$checkdb = $db -> prepare ("SELECT * FROM laps WHERE `race_id` = :raceID");
$checkdb -> bindParam (':raceID', $raceID);

while ($currentLap <= $totallaps) {

    $checkdb -> execute();
    while ($row = $checkdb -> fetch()) {

        $checkpointTime = $row['checkpoint_time'];
        $checkpointNumber = $row['checkpoint_number'];
    }

switch($checkpointNumber) {
      case 1: 
      $currentLap = $currentLap + 1;
      break;

      case 2:
      //Lane 2
      $currentLap = $currentLap + 1;
      break;
    }

}

?>

然后我用:

显示当前的一圈
<? echo $currentLap; ?>

但是,当我访问包含此代码的页面时,不显示任何内容,并且页面似乎连续加载。

while循环是显示数据的正确方法,还是应该使用另一种方法?

1 个答案:

答案 0 :(得分:0)

  

while循环是显示数据的正确方法   应该使用另一种方法吗?

是的,但你不应该在循环中运行执行,没有必要这样做,将代码更改为

$checkdb = $db->prepare ("SELECT * FROM laps WHERE `race_id` = :raceID");
$checkdb ->bindParam(':raceID', $raceID);
$checkdb -> execute();
while ($row = $checkdb -> fetch()) {
    $checkpointTime = $row['checkpoint_time'];
    $checkpointNumber = $row['checkpoint_number'];
}