我必須顯示來自 mysqli 資料庫的大量資料串列,但是當我嘗試顯示資料時,只有第一項顯示在表中(這里有多個資料來自單個 ID,大約有 16,000 個 ID,例如一個ID即站點他們是門報警,站點報警,電池報警和故障報警)。我試過 while 回圈,但它在這里不起作用。
代碼
<?php
include 'dbinc.php';
mysql_connect($mysql_hostname,$mysql_user,$mysql_password);//database connection
mysql_select_db($mysql_database);
$order = "SELECT * FROM quanta
ORDER BY ID DESC
LIMIT 1
";
//order to search data
//declare in the order variable
$result = mysql_query($order);
//order executes the result is saved
//in the variable of $result
$data = mysql_fetch_row($result);
$data_id = $data[0]; //Unique Id
$data_timestamp = $data[1]; //Time Stamp by Server
$data_validated = $data[2]; //Validated by Server
$data_type = $data[3]; //Type 0 - Periodic / 1 - Fault
$data_type_str = "Unknown";
if ($data[3] == 0) $data_type_str = "Periodic";
if ($data[3] == 1) $data_type_str = "Fault";
$data_site_id = $data[4]; //String Site Id
$data_datetime = $data[5]; //Date Time by Device
$data_device_id = $data[6]; //Device Id/ Only 1 known for now
$data_status = $data[7]; //Status Bits - To Expand
$data_status_hex= bin2hex($data_status);
$data_raw = $data[8]; //Raw Data, for device specific information
echo ("<table class='table table-striped'>");
echo("
<tr><td>Site Id</td><td>$data[4]</td></tr>
<tr><td>Date Time</td><td>$data_datetime</td></tr>
<tr><td>Device Id</td><td>$data_device_id</td></tr>");
//echo ("Status: <b>$data_status</b><br>");
//echo ("Status: <b>$data_status_hex</b></tr>");
//$tmp = gettype($data_status);
//echo "Var: $tmp<br>";
$stats = unpack ( "C*" , $data_status );
//var_dump($stats);
//for table
echo "<tr><td>Smoke Fire Alarm</td><td";
//0x0000000000 Smoke fire 0 means No alarm, 1 means Alarm
if (($stats[5] & 0x01) == false)
echo " >no Smoke alarm";
else
echo " >smoke alarm";
echo "</td></tr>" ;
echo "<tr><td>Door</td><td";
//$FLAG_01_DOOR = 0x0000000002; //Door Open 0 means Door Close , 1 Means Door open
if (($stats[5] & 0x02) == false)
echo " >door closed";
else
echo " >door open";
echo "</td></tr>";
echo "<tr><td>Mode</td><td";
//$FLAG_02_AUTO = 0x0000000004; //Auto/Man Mode 0 Means Auto Mode, 1 Means Man Mode
if (($stats[5] & 0x04) == false)
echo " >Auto";
else
echo " >Manual";
echo "</td></tr>";
echo "<tr><td>Load</td><td>";
//$FLAG_034_LOAD = 0x0000000018; //00 :Load on EB,01: Load on DG, 10: Load on site Battery 11: Not used
if (($stats[5] & 0x08) == false)
{
if (($stats[5] & 0x10) == false)
echo "[- Load on EB -]<br>"; //00
else
echo "[- Load on site Battery -]<br>"; //10
}
else
{
if (($stats[5] & 0x10) == false)
echo "[- Load on DG -]<br>"; //01
else
echo "[- Not Used -]<br>"; //11
}
echo "</td></tr>";
echo "<tr><td>Alternate Fault</td><td";
//$FLAG_10_ALT = 0x0000000400; //Alternate Fault
if (($stats[4] & 0x04) == false)
echo " >no fault";
else
echo " >fault";
echo "</td></tr>";
?>
uj5u.com熱心網友回復:
它只顯示 1 個專案,因為您只執行 1 個 mysql_fetch_row($result)。也許試試這個
while($data = mysql_fetch_row($result)) {
//The code you have after to generate the table
}
檔案:https : //www.php.net/manual/en/function.mysql-fetch-row.php
uj5u.com熱心網友回復:
如果您希望顯示所有專案,則需要使用 while 回圈
while($data = mysql_fetch_row($result)){
//在這里輸入你的代碼
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/326987.html
