2016-09-13 128 views
2

我創建了一個在線時間表,它工作正常,用戶或我可以通過使用一些數據添加新的時間表行,我的最終結果就像。如何顯示來自MySQL的數據

這是我的SQL查詢(請不要提醒我用的MySQLi或PDO,我知道他們,但是這是一個私人的應用程序,我可以寫以爲不安全的代碼。)

$date = date("d/m/y"); 
    $sql = "SELECT * FROM `s_timetable` WHERE `date` = '$date'"; 
    $res = mysql_query($sql) or die(mysql_error()); 

    while ($fetch_data = mysql_fetch_array($res)) { 
     echo "<tr>"; 
     echo "<td>" .$fetch_data['batch_info']. "</td>"; 
     echo "<td>" .$fetch_data['class_info']. "</td>"; 
     echo "<td>" .$fetch_data['subject_info']. "</td>"; 
     echo "<td>" .$fetch_data['teacher_info']. "</td>"; 
     echo "</tr>"; 
    } 
    ?> 

但查詢到數據庫後,我得到了很多具有相同價值的結果,我如何將它們顯示爲組。
實施例:
LDC batch - 08:09 - science - Ashok B.
LDC batch - 09-10 - English - Jaky
LDC batch - 10-11 - Maths - Bella

現在我怎麼可以顯示這些數據作爲表,具有LDC batch標題作爲在所有表中重複,然後timesubjectteacher信息與表體。

+0

@HimanshuPatel雅阿但會有幾個不同批次,例如,如果有10個不同批次在每個有關類,學科,老師5-10行。所以在這個例子中總共會有50行,並且在所有批次名稱中都會重複,我只想顯示批名稱作爲標題或表頭以及特定於該表格下的該行的結果,但是問題是我怎麼能做到這一點。 – Jaky

+0

瞭解有關mysql組的信息,您將獲得已分組的值 –

+0

@LelioFaieta我早些時候嘗試了此查詢,但我不知道如何顯示該值。 'SELECT * FROM's_timetable' WHERE'date' ='$ date'GROUP BY'batch_info'; – Jaky

回答

4

此處的一個選項是顯示包含每批次的時間,主題和教師數據的3列HTML表格。當結果集中的批次類型發生更改時,可以將新行打印爲標題。

$header = ""; 
while ($fetch_data = mysql_fetch_array($res)) { 
    if ($header = "" || $header != $fetch_data['batch_info']) { 
     echo "<tr><td colspan=\"3\">".$fetch_data['batch_info']."</td></tr>"; 
     $header = $fetch_data['batch_info']; 
    } 
    echo "<tr>"; 
    echo "<td>" .$fetch_data['class_info']. "</td>"; 
    echo "<td>" .$fetch_data['subject_info']. "</td>"; 
    echo "<td>" .$fetch_data['teacher_info']. "</td>"; 
    echo "</tr>"; 
} 

更新:

由於@apokryfos指出,您應該訂購你的結果由batch_info列設置爲確保屬於同一批次記錄總是相鄰。因此,您的查詢可能成爲:

SELECT * 
FROM s_timetable 
WHERE date = '$date' 
ORDER BY batch_info 
+0

我也'通過batch_info'命令是安全的 – apokryfos

+0

@apokryfos我已經嘗試過,但它看起來不能在這個問題上工作,你能分享你的方法的代碼。 – Jaky

+0

@Jaky你的意思是「不工作」是什麼意思?它只是一個'order by batch_info'在查詢結束 –

相關問題