2011-01-02 9 views
2

データベースをループしてdivにデータを出力しようとしていますが、横に3つのdivがある場合、新しいtrが開始され、別の3に達するまで出力されます。以下のような:それは新しい行を開始しますが、私は一度新しいtrをエコーだけすることができますどのように私にはわからない3に達したときに現在、私はそれをPHP whileループ、テーブル行

[] [] [] 
[] 
[] [] 

を働いてきましたか?毎回新しいテーブル行を作成するので、

echo '<table><tr>'; 

while ($result) 
{ 
    $i ++; 
    if ($i&3) 
    { 
     echo '<td> 
     <div>Row Data</div> 
     </td>'; 
    } 

    else 
    {  
     echo '<tr> 
     <td> 
      <div>Row Data</div> 
     </td></tr>'; 
    } 
} 
echo '</tr></table>'; 

$result変数は、私のSQLクエリからレコードセットで、すべてが私は一度だけ新しいテーブル行を作成する方法がわからない正常に動作しますか?あなたは3をヒット1に、あなたの$変数iをリセットする必要があり

+0

を?テーブル宣言に近いもの。 – vladv

+0

申し訳ありませんが、今すぐ追加されたコードが欠けています。 – Elliott

答えて

2

...

$i = 0; 
echo '<table><tr>'; 

while ($result) 
{ 

    if ($i<=2) 
    { 
     echo '<td> 
     <div>Row Data</div> 
     </td>'; 
    } 

    else 
    {  
     echo '</tr><tr>'; 
     echo '<td><div>Row Data</div></td>'; 
     $i = 0; 
    } 
    $i ++; 

} 
echo '</tr></table>'; 

またはこのような何か

...

+0

ありがとうございました:) – Elliott

1
echo '<table><tr>'; 
var $i = 0; 
while ($result) { 
    if ($i > 2) { 
     echo '</tr><tr>'; 
     $i = 0; 
    } 
    echo '<td></td>'; 
    $i++; 
} 
echo '</tr></table>'; 
1

私はあなたが少しの滑りがあると思いますあなたのコードのロジック。 3 <td>が追加されたときに改行したい。いずれにしても現在、<td>を追加しています。あなたのカウントはもはや機能していません。

また、私はビット単位の操作があなたが望むものだとは思わない。 いつも3 tdを望むなら、&で達成できません3.例えば3 $ 3は真ですが、6 & 3は真ではありません。 7 & 3が真です。 11 & 3が真です。 15 & 3が真です。 $ iをリセットするか、%演算子を使用できます。

0

またはモジュロと:


    if ($i % 3 == 0) { 
     echo '</tr><tr>'; 
    } 

ので、あなたは$ Iをリセットする必要がwouldntの。

0
else 
{  
    echo '<tr> 
    <td> 
     <div>Row Data</div> 
    </td></tr>'; 
} 

をお読みください:あなたは、あなたが最初に開いたTRを閉じてください

else 
{  
    echo '</tr><tr> 
    <td> 
     <div>Row Data</div> 
    </td>'; 
}