2012-04-23 21 views
1

mysqlクエリを非常にユニークなテーブルに表示しようとしています。 特性は以下の通り:3列PHPの結果テーブル

結果テーブルは、右上のセルは、他のコンテンツのために3列
  • 予約された

    [結果1] [結果2] [コンテンツ]

    [結果3] [結果4] [結果5]

    [結果6] [結果7] [結果8]

    ...など

    クエリは1つの結果を返すことができます。 しかし、私はループに含める必要があるものを得るのに苦労しています。

    誰かがこのようなことをする方法を知っているなら、私はいくつかの助けが大好きです! ありがとうございます!

    EDITは** HERE結果は、3つの列に貫通して来ているSO FAR

    MY CODEですが、私は条件が右上セル内の他の静的なコンテンツを表示するために取得することはできません。純粋なHTMLテーブルを想定し

    $row = 0; 
    $column = 0; 
    echo "<table>"; 
    while($row = mysql_fetch_assoc($result)) { 
        if ($column == 0) {echo "<tr>";} 
        if (($column == 2) && ($row == 0)){echo "<td>content</td></tr><tr>";} 
        echo "<td>".$row['business']."</td>"; 
        $column++; 
        if ($column >= 3) { 
        $row++; 
        echo "</tr>"; 
        $column = 0; 
        } 
    } 
    echo "</table>"; 
    
  • +1

    をこれまでにあなたが書いたコードを表示 –

    +0

    、あなたは何を試してみましたか?私はあなたのMySQLの結果配列と "コンテンツセクション"と "私は3 == 0"新しい行を開始するための "私は== 3"のような条件を介して単純なループで行くだろう。 –

    +0

    これはちょうど普通のhtmlテーブルか、純粋なCSSバージョンですか? –

    答えて

    0

    、あなたは

    $row = 0; 
    $column = 0; 
    echo '<table>'; 
    while($row = mysql_fetch_assoc($result)) { 
        if ($column == 0) { 
         echo '<tr>'; 
        } 
        if (($column == 2) && ($row = 0)) 
         echo '<td>content</td></tr><tr>'; // output special content, start new row 
        } 
        echo "<td>$row[something]</td>"; 
        $column++; 
        if ($column >= 3) { 
         $row++; 
         echo '</tr>'; 
         $column = 0; 
        } 
    } 
    echo '</table>'; 
    

    は、おそらくそのままでは動作しませんしていると思いますが、あなたの一般的なアイデアを与える必要があります。基本的にはちょうど出力行/列あなたはそれ以外の場合はちょうどそれから/ 3列出力あなたの特別なコンテンツを、1行目に到達するまで

    +0

    に追加しました。ありがとうございました。私は3列以上の結果を得ていますが、すべての行の3番目の列は、行1の "content"ではなく、行2+の有効な$ row [something]の代わりにfalse $ row [something]を返しています。何か案は?ああ、私はあなたの2番目のIF文に "echo"の前に余分な中括弧を追加しました。 – dsol828

    +0

    元の投稿に追加したコードは3列すべてを読み込みますが、右上のセルの条件文が機能していないようです。なぜどんなアイデア? – dsol828

    0

    あなたが$rowsにおける検索結果の行を持っていたら、配列の配列に分割:

    $table = array(); 
    while (count($rows)){ 
        $group = array_slice($rows, 0, 3); 
        $rows = array_slice($rows, 3); 
        while (count($group) < 3) $group[] = array(); 
        $table[] = $group; 
    } 
    

    $tableには、3要素配列の配列が含まれています。最後の一つは、我々はそれ3.それからちょうど出力が得られるまで、空の配列を追加し、その中の3つの要素を持っているパディングです:

    foreach ($table as $group){ 
        echo "<tr>\n"; 
        foreach ($group as $row){ 
         if ($row['id']){ 
          echo "<td>".format_data($row)."</td>\n"; 
         }else{ 
          # empty padding cell on last row 
          echo "<td>&nbsp;</td>\n"; 
         } 
        } 
        echo "</tr>\n"; 
    } 
    
    関連する問題