PHP + HTML表水平而循环

时间:2013-05-27 22:00:19

标签: php while-loop html-table

我正在建立一个天气网站并开始定制预测页面。我在服务器上为值设置了数据库。以下是我对代码的看法:

$sql = "SELECT * FROM forecast ORDER BY FID";

$result = mysql_query($sql) or die($sql."<br/><br/>".mysql_error());

$i = 0;

echo '<table width="1400" border="1">';
echo '<td>';
while ($forecast = mysql_fetch_array($result)) {
        echo '<table width="200" border="1">';
        echo '<tr>';
    echo "<th colspan='4'>{$forecast['DAY']}</th>";
    echo '</tr>';
    echo '<tr>';
    echo "<td height='100' width='100' colspan='2'>ICON</td>";
    echo "<td height='100' width='100' colspan='2'>ROSE</td>";
    echo '</tr>';
    echo '<tr>';
    echo "<td>{$forecast['HIGH']}</td>";
    echo "<td>{$forecast['LOW']}</td>";
    echo "<td>{$forecast['WIND']}</td>";
    echo "<td>{$forecast['GUST']}</td>";
    echo '</tr>';
    echo '<tr>';
    echo "<td>Precip:{$forecast['RAIN']}</td>";
    echo "<td>Severe:{$forecast['SEVERE']} </td>";
    echo '</tr>';
    echo '</table>';
    ++$i;
}
echo '</td>';
echo '</table>';

但是当我运行它时,我没有像我想要的那样获得水平布局(循环创建一个显示预测的表格,我想要连续7个)但是我得到了一个垂直布局。见照片:http://www.themacvortex.com/TableFail.png

如何修改代码以获得水平布局?

1 个答案:

答案 0 :(得分:0)

您创建的外部<table>只有一个<td>,其中包含<tr>。但真正的问题是:

您的外部<td>应为<tr>。您的while应如下所示:

while ($forecast = mysql_fetch_array($result)) {
   echo '<td>'
      . '<table width="200" border="1">'
      . ..... more ...
      . '</table>'
      . '</td>
      ;
}

while内部在每次while次迭代期间创建新列。

W3C's validation service可能也有帮助。