Php HTML表中的未知列、列名和行

Php HTML表中的未知列、列名和行,php,Php,我试图在一个HTML表中显示msSQL表中的所有信息,但我发现了一些不太好的东西 <table border="1"> <? echo "<tr>"; for ($i = 0; $i < mssql_num_fields($result); ++$i){ echo "<th>" .$column_names[$i] . "</th>"; } echo "</tr>"; $num_rows = mssql_num_

我试图在一个HTML表中显示msSQL表中的所有信息,但我发现了一些不太好的东西

<table border="1">
<?
echo "<tr>";
for ($i = 0; $i < mssql_num_fields($result); ++$i){
    echo "<th>" .$column_names[$i] . "</th>";
}
echo "</tr>";

$num_rows =  mssql_num_rows($result);

for ($i = 0; $i < $num_rows; ++$i){
    echo "<tr>";
    foreach ($column_names as $key => $val){    
        $result_row = mssql_query("SELECT * FROM username WHERE id = '$i'");
        $row = mssql_fetch_assoc($result_row);
        echo "<td>";
        echo $row[$val];
        echo "</td>";
    }
    echo "</td>";
}
?>
</table>

试试这个:

while($row = mysql_fetch_results($result)){
    echo '<td>'.$row['column_name'].'</td>';
}
while($row=mysql\u fetch\u results($result)){
回显'.$row['column_name'].';
}
“column_name”是mysql中的列名

但是有些人会说…“等等,但是PDO”

函数表\u单元($item,$header=false){
如果(!$item)返回“”;
$elemname=($header)?'th':'td';
$escitem=htmlspecialchars($item,ENT_NOQUOTES,'UTF-8');
返回“{$escitem}”;
}
功能表标题单元格($item){
返回表格单元($item,true);
}
函数表\行($items,$header=false){
$func=($header)?'table_header_cell':'table_cell';
返回“\n\t”。内爆(“\n\t”,数组映射($func,$items))。“\n\n”;
}
函数echo_result_as_table($result){
如果($result&&$row=mssql\u fetch\u assoc($result)){
$columnnames=数组\ U键($row);
回显“\n”,表\u行($columnnames,true),“\n”;
做{
回显表\u行($row),“\n”;
}而($row=mssql_fetch_assoc($result));
回音“\n”;
}
}
$result=mssql_查询(“从用户名中选择*);
将结果作为表格($result)返回;
如果($result)mssql\u free\u result($result);
如果有关联数组而不是原始mssql结果句柄,则可以使用如下函数生成表字符串:

function array_to_table($arrayofassoc) {
    if (!$arrayofassoc) return '';
    $tablestr = '<table>';
    $tablestr .= table_row(array_keys($arrayofassoc[0]), true);
    $tablestr .= implode('', array_map('table_row', $arrayofassoc));
    $tablestr .= '</table>';
    return $tablestr;
}
函数数组到表($arrayofassoc){
如果(!$arrayofassoc)返回“”;
$tablestr='';
$TABLETSTR.=表行(数组键($arrayofassoc[0]),true);
$TABLETSTR.=内爆(“”,数组映射('table_row',$arrayofassoc));
$tablestr.='';
返回$tablestr;
}

谢谢!我有人应该在我的服务器上安装PDO包。这显然有点不合作。现在就这样吧。问题是,我不知道列名。也许我可以试试
$row[array\u unshift(column\u names)]
…我通常硬编码列名,因为我必须按名称访问列。如果您的用户是一个对象,您可以循环使用列名的成员变量。啊,谢谢。但是这个方法效果很好:
while($row=mssql\u fetch\u assoc($result)){echo”“;foreach($col\u key=>$col\u val){echo”“;echo$row[$col\u val];echo”“;}echo”“}
试图切断对列名的第一次调用。但很高兴它起作用了。
function array_to_table($arrayofassoc) {
    if (!$arrayofassoc) return '';
    $tablestr = '<table>';
    $tablestr .= table_row(array_keys($arrayofassoc[0]), true);
    $tablestr .= implode('', array_map('table_row', $arrayofassoc));
    $tablestr .= '</table>';
    return $tablestr;
}