我正在尝试创建一个简单的函数,创建一个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>";
}
然而,它很糟糕,并从表中选择了不应该的行,我只是无法让它工作。请帮助:)
答案 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
。