2013-12-21 56 views
0

我在開發過程中有一個相當奇怪的問題,說明很簡單。我有一張Sortiments表,每個都屬於任何Category。讓我們來看看:如何僅通過記錄和表格中的其他記錄打印出一個類別?

Sortiment 1 | Category 2 
Sortiment 2 | Category 3 
Sortiment 3 | Category 1 
Sortiment 4 | Category 1 
Sortiment 5 | Category 1 
Sortiment 6 | Category 3 

現在,我想按類別訂購變得簡單:

SELECT * FROM sortiment ORDER BY category 

Sortiment 3 | Category 1 
Sortiment 4 | Category 1 
Sortiment 5 | Category 1 
Sortiment 1 | Category 2 
Sortiment 2 | Category 3 
Sortiment 6 | Category 3 

如果我們這樣做一個:

<table> 
<?php 
while ($r = mysql_fetch_array($q)) { 
    echo "<tr> <td>" . $r['sortiment'] . "</td> </tr>"; 
} 
?> 
</table> 

我得到以下方案(沒有類別):

<table> 
    <tr> 
     <td> Sortiment 3 </td> 
    </tr> 
    <tr> 
     <td> Sortiment 4 </td> 
    </tr> 
    <tr> 
     <td> Sortiment 5 </td> 
    </tr> 
    <tr> 
     <td> Sortiment 1 </td> 
    </tr> 
    <tr> 
     <td> Sortiment 2 </td> 
    </tr> 
    <tr> 
     <td> Sortiment 6 </td> 
    </tr> 
</table> 

但是這是n我需要什麼。我需要以下打印輸出:

<table> 
    <tr class="mycategory"> 
     <td> Category 1 </td> 
    </tr> 
    <tr> 
     <td> Sortiment 3 </td> 
    </tr> 
    <tr> 
     <td> Sortiment 4 </td> 
    </tr> 
    <tr> 
     <td> Sortiment 5 </td> 
    </tr> 
    <tr class="mycategory"> 
     <td> Category 2 </td> 
    </tr> 
    <tr> 
     <td> Sortiment 1 </td> 
    </tr> 
    <tr class="mycategory"> 
     <td> Category 3 </td> 
    </tr> 
    <tr> 
     <td> Sortiment 2 </td> 
    </tr> 
    <tr> 
     <td> Sortiment 6 </td> 
    </tr> 
</table> 

請注意,這不關心類別和排序順序。

<table> 
<?php 
while ($r = mysql_fetch_array($q)) { 
    if (header) { 
    ... once write header of category ... 
    } else { 
    echo "<tr> <td>" . $r['sortiment'] . "</td> </tr>"; 
    } 
} 
?> 
</table> 

如何打印出一個<tr class="mycategory">Specific category</tr>一旦像上述方案?

+0

我需要像上面的方案打印出來。 – RePRO

回答

2

試試這個:

使用臨時變量來比較類別標題;

<?php 
$sortiments = mysql_fetch_array($q,MYSQL_ASSOC); 
$tmp_category_header = null; 
foreach($sortiments as $sortiment): 
    $category = $sortiment['category_title']; // category name 
    $sortiment_label = $sortiment['sortiment_label']; // sortiment 
?> 

    <?php if($tmp_category_header == null || $tmp_category_header != $category): ?> 
     <tr> 
     <th><?php echo $category; ?></th> 
    </tr> 
    <?php endif; ?> 

    <tr> 
    <td><?php echo $sortiment_label; ?></td> 
    <tr> 

    <?php $tmp_category_header = $category; ?> 
<?php endforeach; ?> 

考慮mysql_*改變你mysqli_* - mysql_ *已被棄用。

相關問題