簡體   English   中英

在HTML表中顯示MySQL查詢

[英]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_idid分組為:

    19 => 
       [0] => 4,
       [1] => 5, 

    20 => 
       [0] => 5,

    21 => 
       [0] => 4,
       [1] => 6 

然后,當它遍歷id我們確保使用$listed[]數組僅將該行打印一次。 至於“是”和“否”,我們使用先前分組的數組來檢查該idsprinkler_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM