在php中转储整个mysql表的函数

时间:2013-10-27 20:21:07

标签: php html mysql

我正在尝试创建一个简单的函数,创建一个HTML表,首先获取th-tags中的标题,然后将所有行转储到html表行中。

这是我到目前为止所得到的。

function dumpMysqlTable($tblName) {
$result=mysql_query("SELECT * FROM `$tblName`");
echo "<table>";
echo "<tr>";
$i=0;
while($i<mysql_num_fields($result)) {
    $fields=mysql_fetch_field($result, $i);
    echo "<th>".$fields->name."</th>";
    $i++;
}
echo "</tr>";
echo "<tr>";
$j=0;
while($j<mysql_num_rows($result)) {
    $k=0;
    while($row=mysql_fetch_array($result)) {
        echo "<td>".$row[$k]."</td>";
        $k++;
    }
    $j++;
}
echo "</tr>";
echo "</table>";
}

然而,它很糟糕,并从表中选择了不应该的行,我只是无法让它工作。请帮助:)

1 个答案:

答案 0 :(得分:1)

你犯了几个错误。

while($row=mysql_fetch_array($result)) {

将返回表的整行(或行)。因此$row[$k]引用一行(表格中的一行),一个单元格值。

然后您应该知道默认情况下mysql_fetch_array将返回一个包含数字键和关联索引的数组。因此,您应该使用mysql_fetch_array( $result, MYSQL_NUM )mysql_fetch_row()。然后你可以遍历这行:

while( $row = mysql_fetch_row( $result ) ) {
  echo "<tr>";

  foreach( $row as $cell )
  {
    echo "<td>".$cell."</td>";
  }

  echo "</tr>";
}

请注意,您也忘了为每一行打开一个新的tr