2013-10-29 43 views
0

我使用當前顯示的全部結果的表如下:拆分查詢結果劃分爲有自己的表,根據相同的ID

$result = mysqli_query($con,"SELECT * FROM b_tasks_po"); 

while($row = mysqli_fetch_array($result)) 

{ 
echo "<tr>"; 
echo "<td class='tdclass' width='100'>" . $row['TASK_ID'] . "</td>"; 
echo "<td class='tdclass' width='100'>" . $row['QTY'] . "</td>"; 
echo "<td class='tdclass' width='100'>" . $row['CODE'] . "</td>"; 
echo "<td class='tdclass' width='500'>" . $row['PRODUCT_DESCRIPTION'] . "</td>"; 
echo "</tr>"; 
}     
?> 

</table> 

這帶來了以下內容:

| Task ID | Qty | Code | Description 
| 1  | 200 | AB1 | Frame 1 
| 1  | 350 | AB2 | Frame 2 
| 2  | 100 | AB3 | Frame 3 
| 2  | 120 | AB4 | Frame 4 
| 2  | 300 | AB5 | Frame 5 

這裏是我的想要,我不知道我該怎麼做。我需要爲每組ID創建一個新表。因此,例如:

TABLE ONE 

| Task ID | Qty | Code | Description 
| 1  | 200 | AB1 | Frame 1 
| 1  | 350 | AB2 | Frame 2 

TABLE TWO 

| Task ID | Qty | Code | Description 
| 2  | 100 | AB3 | Frame 3 
| 2  | 120 | AB4 | Frame 4 
| 2  | 300 | AB5 | Frame 5 

我想到了分組由TASK_ID的結果,但沒有喜悅和我也想過用if語句,但不能爲我的生活工作如何做到這一點。

任何幫助,將不勝感激。

回答

1

您需要對task_id更改時的結果進行排序並重新打印標題。例如:

<? 
$result = mysqli_query($con,"SELECT * FROM b_tasks_po ORDER BY TASK_ID"); 

$current_task_id = -1; 
while($row = mysqli_fetch_array($result)) 
{ 
    if($current_task_id != $row['TASK_ID']) 
    { 
     echo "</table><table>"; 
     echo "<tr>"; 
     echo "<th width='100'>Task ID</th>"; 
     echo "<th width='100'>Qty</th>"; 
     echo "<th width='100'>Code</th>"; 
     echo "<th width='500'>Description</th>"; 
     echo "</tr>"; 
     $current_task_id = $row['TASK_ID']; 
    } 
    echo "<tr>"; 
    echo "<td class='tdclass' width='100'>" . $row['TASK_ID'] . "</td>"; 
    echo "<td class='tdclass' width='100'>" . $row['QTY'] . "</td>"; 
    echo "<td class='tdclass' width='100'>" . $row['CODE'] . "</td>"; 
    echo "<td class='tdclass' width='500'>" . $row['PRODUCT_DESCRIPTION'] . "</td>"; 
    echo "</tr>"; 
} 

?> 

</table> 
+0

這就是我一直在尋找的。非常感謝您的幫助! – andy

+0

好的。雖然他特別說他想要兩張桌子,所以你可能還想添加一個「回聲」。 – geomagas

+0

要將它分成表格,我會在哪裏放置'回聲'

',因爲它爲我所在的每一行創建了新表格。我基本上是想在每張表格後面添加一些文本並努力。 – andy

0

我不認爲你需要兩張表。我認爲你需要兩個結果集。你所尋找的是一個where條款:

SELECT * 
FROM b_tasks_po 
WHERE id = 1; 

事實上,如果你想創建兩個表(其作爲一般規則似乎是一個壞主意),然後看看在MySQL中create table as功能。

+0

這是行不通的。這些任務正在網站的另一個區域生成,因此我永遠不會知道實際的ID號,因此無法執行WHERE ID = 1。如果這是有道理的。 – andy

+0

@AndyNaylor。 。 。不,對我來說沒有意義。但它看起來像別人回答你的問題。榮譽給他們。 –