我目前正在为基于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循环是显示数据的正确方法,还是应该使用另一种方法?
答案 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'];
}