PHP中的简单表回显

时间:2012-06-22 16:52:41

标签: php mysql html

我正在构建这个功能,但是我没有得到所需的输出,我已经超过5个小时了。

我有这段代码:

$result = mysql_query("SELECT $checked FROM hostess");
echo "<table border='1'>";
foreach( $checked1 as $key => $value){
   echo "<th> $value </th>";

   while($row = mysql_fetch_array($result)){
      foreach($checked1 as $key => $value){
         echo "<tr>" . $row[$value] . "</tr>"; 
      }
   }
}
echo "</table>";

我需要的是打印第一个$value作为表格的头部,然后打印$row[value]作为行,但我打印标题,然后其余的只打印在一个所有这一切。

2 个答案:

答案 0 :(得分:1)

为了正确调试您的问题,请记住表通常看起来如何:

<table>
  <thead>
    <th>
      <td></td>
      <td></td>
    </th>
  </thead>
  <tbody>
    <tr>
      <td></td>
      <td></td>
    </tr>
  </tbody>
</table>

所以,通过将输出包装在某些<pre>标记中来查看代码输出的内容。你会看到你错过的东西。

另外,关于将mysql表输出为html的主题有很多教程 - 也许你可以从某个地方偷一个。

http://forums.devshed.com/php-development-5/display-results-from-query-in-html-table-4095.html
or http://www.anyexample.com/programming/php/php_mysql_example__display_table_as_html.xml

另外,如果你真的想和我讨厌一下,如果你看看一个名为factory pattern的流行设计模式,你真的可以用它来构建一个很棒的表类。

答案 1 :(得分:0)

好的,我现在明白了。您的问题是您没有按正确的顺序打印标签和值。试试这个:

$result = mysql_query("SELECT $checked FROM hostess");
echo "<table border='1'>";
echo "<thead><tr>"
foreach( $checked1 as $key => $value){
   echo "<th> $value </th>";
}
echo "</tr></thead>";

while($row = mysql_fetch_array($result)) {
    echo "<tr>";
    foreach($checked1 as $key => $value){
        echo "<td>" . $row[$value] . "</td>"; 
    }
    echo "</tr>";
}
echo "</table>";