0

データベースからテーブルを作成する PHP に取り組んでいますが、この 1 つのセクションが私を困惑させています。内部に正しく配置されます:

外観は次のとおりです。

http://i.stack.imgur.com/d8xgD.png

            $STH = $DBH->query($query_complete);

            // Perform the query
            $STH->setFetchMode(PDO::FETCH_ASSOC);
            $row = $STH->fetch();

            // Initialize our variables used for row counts, etc.
            $i = 0;
            $prevRowHour = 25; // Start at 25th hour as nothing will match this first-up.       

            $rowCount = $STH->rowCount();
            if($rowCount==0) {
                echo 'There are no results for this time frame.';
            }
            else {  

                // Create our table heading
echo <<<EOD
                <table class="tablesorter" id="trendTable">
                    <thead>
                        <tr>
                            <th>Hour added</th>
                            <th>Case Number</th>
                            <th>Device</th>
                            <th>Component</th>
                            <th>Tier</th>
                            <th>Resolved</th>
                            <th>Exact Time Added</th>
                        </tr>
                    </thead>
                    <tbody>
EOD;
                // Save the output into a variable to output after the sort order div
                while($row = $STH->fetch()) {

                    // Check if this hour matches the last.
                    if ($prevRowHour != $row['hour'] ) {
                        // If it doesn't -> Create new row

                        // Then make our fresh row
/* ~~~THIS LINE OUTPUTS WEIRDLY~~~ */           echo '<tr colspan="7">'.$row['hour'].'</tr>'; // THIS OUTPUTS ALL WEIRDLY
                    }

                    // Either way, we add a new row.


                    $prevRowHour = $row['hour'];
                    $i++;
                }
                echo <<<EOD
                    </tbody>
                </table><!-- end of trendTable -->
EOD;

            }

問題があると思われる行は次のとおりです。

/* THIS LINE OUTPUTS WEIRDLY */         echo '<tr colspan="7">'.$row['hour'].'</tr>'; // THIS OUTPUTS ALL WEIRDLY

要素インスペクターに従って、このセグメントが出力している HTML のセクションを次に示します (OS X の Chrome、Safari、および FireFox でテスト済み)。

http://i.stack.imgur.com/tGUmF.png

ビューソースではまだ: 適切に表示されます:

..<tbody><tr colspan="7">13</tr><tr colspan="7">11</tr><tr colspan="7">10</tr>..

外部の問題ではないことを確認するために、すべての JavaScript を削除して無効にしました。css/nojs がなく、PHP からの純粋な HTML である場合に発生します。

また、エコーされたすべての EOD を通常の 1 行の文字列に切り替えました。

このようなことをこれまでに見たことがあり、それを止める方法を知っている人はいますか?

4

1 に答える 1

0

<td>要素がありません。セルに含まれていないテーブルの内容は、テーブルの上にレンダリングされます。私はあなたが意味したと思います<tr><td colspan="7">

于 2013-07-12T03:45:03.673 に答える