0
我目前正在開發基於Raspberry Pi和Arduino的Scalextric遙測系統的用戶界面。該系統在軌道周圍使用一系列光傳感器,這些傳感器的輸出被插入到mySQL數據庫中。實時數據庫使用while循環查詢
從這些數據我需要顯示比賽統計。例如,如果一輛汽車在軌道起點通過光線傳感器,則當前圈數增加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循環顯示數據的正確方法,因爲它發生或有另一種方法應該使用?
你在哪裏定義'$ raceID'?另外,因爲你的'switch($ checkpointNumber)'中沒有缺省值,所以比'while($ row = $ checkdb - > fetch())'不返回任何行','$ checkpointNumber'永遠不會匹配'1' |'2',所以'$ currentLap'永遠不會增加,所以你將有一個無止境的循環。 – Sean
@Sean Race ID在一個名爲「raceStats.php」的文件中定義。我已經將該文件包含在頁面的頂部。 我不確定我的switch語句中可以使用什麼默認值,因爲檢查點編號只能是一個或兩個。隨着汽車駛過賽道,查詢應始終返回值。 –