2011-10-26 33 views
0

mysqlからのデータを1つのループ内の別々のhtmlテーブルに表示する方法を理解できません。ここでmysqlのデータをhtmlテーブルに表示

は私のMySQLのテーブルがどのように見えるかです:

date   name 
----   ---- 
2011-02-02 Katrin 
2011-02-02 Michael 
2011-02-02 Joe 
2011-02-05 David 
2011-02-05 Steve 
etc... 

注:私は、テーブルからデータを取得する方法を知っています。

アイデアは、日付に基づいて個別のテーブルを作成することです。例えば、生成されるべきhtmlがここにあります。ここで

<table> 
<tr> 
    <td>date</td><td>name</td> 
    <td>2011-02-02</td><td>Katrin</td> 
    <td>2011-02-02</td><td>Michael</td> 
    etc.. 
</tr> 
</table> 

<table> 
<tr> 
    <td>date</td><td>name</td> 
    <td>2011-02-05</td><td>Joe</td> 
    <td>2011-02-02</td><td>David</td> 
    etc.. 
</tr> 
</table> 

は私がしようとするものです。

テーブルから取り出される個別の日付の数を計算しました。その後、私は "for"ステートメントを使用してテーブルを "描画"します。その場合

は、これまでのところは良い2

<?php for($x = 0; $x < $total_dates; $x++): ?> 
<table> 
    <tr> 

    <tr> 
</table> 
<?php endif; ?> 

あるtotal_dates。そのコードはテーブルを描画します。問題は、テーブル内にデータを表示する方法をプログラマ로직で把握できないため、すべてのテーブルに日付でグループ化されたデータが含まれていることです。

答えて

1

データを日付に基づいてグループ化したい場合があります(GROUP BY文を参照)。これを順番に行うと、レコードごとにデータレコードをループすることができます。前回の反復と比較して日付が変更されているかどうかをチェックするif文を各反復に含めます。その場合は、テーブルを閉じて新しいテーブルを開きます。 (テストしていない)のように:

<table> 
<? $prevDate = null; ?> 
<? foreach($myData as $row){ ?> 
    <? if($prevDate != null && $prevDate != $row['date']) { ?> 
    </table><table> 
    <? } ?> 

    <tr>  
    <td>date</td> 
    <td>name</td>  
    <td>2011-02-02</td> 
    <td>Katrin</td>  
    <td>2011-02-02</td> 
    <td>Michael</td> 
    </tr> 

<? $prevDate = $row['date']; ?> 
<? } ?> 

+0

あなたはいくつかのコードで私を助けることができます:

はちょうどこのような何かを? – jingo

+0

@jingo:私は自分の投稿を編集しました。私はそれをテストしていないようなsomethignのようにする必要があります。 –

+0

私は今それをテストしています – jingo

0

あなたは一つのループでそれを行うことができますが、条件は、日付を注文する必要があるということです。

$table_header = '<table><tr><th>Header 1</th><th>Header 2</th></tr>'; 
$table_end = '</table>'; 

$flag = false; 
echo $table_header; 
for ($x in $total) { 
    if ($flag != $x->date && $flag != false) { 
     echo $table_end; 
     echo $table_header; 
    } 
    // Display table content for the current row 
    echo '<tr><td>'.$value.'</td><td>'.$value.'</td></tr>'; 
    $flag = $x->date; 
} 
echo $table_end; 
関連する問題