Php HTML表中的未知列、列名和行
我试图在一个HTML表中显示msSQL表中的所有信息,但我发现了一些不太好的东西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_
<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;
}