[英]Display MySQL query in a HTML table
以下代碼在表格上顯示表格,但我需要以特定的方式格式化表格。
所需的輸出以圖像顯示。 因此,我需要以某種方式處理查詢,以便將Sprinkler_ID列轉換為1,2,3,4,5,6,7,8。 因此,如果在原始表中沒有Sprinkler_ID,則說“ 2”,則所需表應在“ 2”字段中打印“ no”,否則為YES。
<?php
include('config.php');
echo "<h4>Current Schedules</h4>";
echo "<table border=2 >";
echo "<tr>";
echo "<td><b>Sprinkler_Id</b></td>";
echo "<td><b>Schedule_Id</b></td>";
echo "<td><b>Starttime</b></td>";
echo "<td><b>Stoptime</b></td>";
echo "<td><b>Monday</b></td>";
echo "<td><b>Tuesday</b></td>";
echo "<td><b>Wednesday</b></td>";
echo "<td><b>Thursday</b></td>";
echo "<td><b>Friday</b></td>";
echo "<td><b>Saturday</b></td>";
echo "<td><b>Sunday</b></td>";
echo "</tr>";
$sql = "SELECT daystime.*, Sprinkler_ID FROM daystime, scheduler WHERE daystime.id = scheduler.DaysTime_ID ORDER BY Sprinkler_ID, daystime.id";
$results=mysql_query($sql) or die(mysql_error());
while($row=mysql_fetch_array($results))
{
$id = $row['id'];
echo "<tr>";
echo "<td valign='top'>" . nl2br( $row['Sprinkler_ID']) . "</td>";
echo "<td valign='top'>" . nl2br( $row['id']) . "</td>";
echo "<td valign='top'>" . nl2br( $row['starttime']) . "</td>";
echo "<td valign='top'>" . nl2br( $row['stoptime']) . "</td>";
echo "<td valign='top'>" . nl2br( $row['mon']) . "</td>";
echo "<td valign='top'>" . nl2br( $row['tue']) . "</td>";
echo "<td valign='top'>" . nl2br( $row['wed']) . "</td>";
echo "<td valign='top'>" . nl2br( $row['thu']) . "</td>";
echo "<td valign='top'>" . nl2br( $row['fri']) . "</td>";
echo "<td valign='top'>" . nl2br( $row['sat']) . "</td>";
echo "<td valign='top'>" . nl2br( $row['sun']) . "</td>";
echo "</tr>";
}
echo "</table>";
?>
您必須首先自定義創建不存在的1-8列,因此請執行以下操作:
//...continued from code
echo "<td><b>Saturday</b></td>";
echo "<td><b>Sunday</b></td>";
for($i=1;$i<=8;$i++){
echo "<td><b>".$i."</b></td>";
}
echo "</tr>";
然后,我們使用以下代碼:
$ids=array();
#we'll first save all the ids into an array
while($row=mysql_fetch_array($results))
{
$ids[$row['id']][]=$row['Sprinkler_ID'];
}
$listed=array();
while($row=mysql_fetch_array($results))
{
$id = $row['id'];
if(!in_array($id,$listed)){
echo "<tr>";
echo "<td valign='top'>" . nl2br( $row['id']) . "</td>";
//...all your other rows
for($i=1;$i<=8;$i++){
if(in_array($i,$ids[$id])){
echo "<td valign='top'>yes</td>";
}
else{
echo "<td valign='top'>no</td>";
}
}
echo "</tr>";
$listed[]=$id;
}
}
邏輯是,我們首先將重復的Sprinkler_id
與id
分組為:
19 =>
[0] => 4,
[1] => 5,
20 =>
[0] => 5,
21 =>
[0] => 4,
[1] => 6
然后,當它遍歷id
我們確保使用$listed[]
數組僅將該行打印一次。 至於“是”和“否”,我們使用先前分組的數組來檢查該id
的sprinkler_id
是否存在。 如果是,則為“是”,否則為“否”。
為了實現此目的,請在您的php文件中維護一個用於散布ID的靜態數組,然后檢查此數組中是否存在來自Db的值
<?php
include('config.php');
$sprinkleIds = range(1,8);
echo "<h4>Current Schedules</h4>";
echo "<table border=2 >";
echo "<tr>";
echo "<td><b>Sprinkler_Id</b></td>";
echo "<td><b>Schedule_Id</b></td>";
echo "<td><b>Starttime</b></td>";
echo "<td><b>Stoptime</b></td>";
echo "<td><b>Monday</b></td>";
echo "<td><b>Tuesday</b></td>";
echo "<td><b>Wednesday</b></td>";
echo "<td><b>Thursday</b></td>";
echo "<td><b>Friday</b></td>";
echo "<td><b>Saturday</b></td>";
echo "<td><b>Sunday</b></td>";
echo "</tr>";
$sql = "SELECT daystime.*, Sprinkler_ID FROM daystime, scheduler WHERE daystime.id = scheduler.DaysTime_ID ORDER BY Sprinkler_ID, daystime.id";
$results=mysql_query($sql) or die(mysql_error());
while($row=mysql_fetch_array($results))
{
$id = $row['id'];
echo "<tr>";
if( in_array( $row['Sprinkler_ID'], $sprinkleIds ) {
$text = 'Yes';
} else {
$text = 'No';
}
echo "<td valign='top'>" . $text . "</td>";
echo "<td valign='top'>" . nl2br( $row['id']) . "</td>";
echo "<td valign='top'>" . nl2br( $row['starttime']) . "</td>";
echo "<td valign='top'>" . nl2br( $row['stoptime']) . "</td>";
echo "<td valign='top'>" . nl2br( $row['mon']) . "</td>";
echo "<td valign='top'>" . nl2br( $row['tue']) . "</td>";
echo "<td valign='top'>" . nl2br( $row['wed']) . "</td>";
echo "<td valign=
'top'>" . nl2br( $row['thu']) . "</td>";
echo "<td valign='top'>" . nl2br( $row['fri']) . "</td>";
echo "<td valign='top'>" . nl2br( $row['sat']) . "</td>";
echo "<td valign='top'>" . nl2br( $row['sun']) . "</td>";
echo "</tr>";
}
echo "</table>";
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.