从不同的函数使用此函数从PHP查询生成表。我正在尝试使用灯丝jQuery可视化插件生成图表。然而,几乎在那里我似乎需要将第一列中的每个值标记为<th>
,以便图表正确地将其标识为标题。我想我需要在'如果列号是1,将<th>
附加到它'的情况下加上if语句,但不确定在下面的代码中它会在哪里。有什么想法吗?
function SQLResultTable($Query)
{
$host = "localhost";
$user = "root";
$pass = "";
$db = "Quality_Monitoring";
$link = mysql_connect($host, $user, $pass) or die('Could not connect: ' . mysql_error()); //build MySQL Link
mysql_select_db($db) or die('Could not select database'); //select database
$Table = ""; //initialize table variable
$Table.= "<table id='Table1' border='1' style=\"border-collapse: collapse; text-align: center; font-size: 10px; cellspacing: 5px; \">"; //Open HTML Table
$Result = mysql_query($Query); //Execute the query
if(mysql_error())
{
$Table.= "<tr><td>MySQL ERROR: " . mysql_error() . "</td></tr>";
}
else
{
//Header Row with Field Names
$NumFields = mysql_num_fields($Result);
$Table.="<thead>";
$Table.= "<tr style=\"background-color: #000066; text-align: center; color: #FFFFFF;\">";
for ($i=0; $i < $NumFields; $i++)
{
if($i==0){
$Table.= "<th>" . "</th>";}
else {
$Table.= "<th>" . mysql_field_name($Result, $i) . "</th>";
}
}
$Table.= "</tr>";
$Table.="</thead>";
//Loop thru results
$RowCt = 0; //Row Counter
while($Row = mysql_fetch_assoc($Result))
{
//Alternate colors for rows
if($RowCt++ % 2 == 0) $Style = "background-color: #CCCCCC;";
else $Style = "background-color: #FFFFFF;";
$Table.= "<tr style=\"$Style\">";
//Loop thru each field
foreach($Row as $field => $value)
{
$Table.= "<td>$value</td>";
}
$Table.= "</tr>";
}
// $Table.= "<tr style=\"background-color: #000066; color: #FFFFFF;\"><td colspan='$NumFields'>Query Returned " . mysql_num_rows($Result) . " records</td></tr>";
}
$Table.= "</table>";
return $Table;
}
?>
我知道我应该使用MYSQLI或其他什么,我很快就会解决这个问题,只需要让这个原型启动并运行。任何帮助非常感谢。
它生成的表是:
<table id="Table1" border="1" style="border-collapse: collapse; text-align: center; font-size: 10px; cellspacing: 5px; ">
<thead>
<tr style="background-color: #000066; text-align: center; color: #FFFFFF;">
</thead>
<tbody>
<tr style="background-color: #CCCCCC;">
<td>Alex O Halloran</td>
<td>2</td>
<td>5</td>
<td>2.5</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr style="background-color: #FFFFFF;">
<td>Christopher Fox</td>
<td>1</td>
<td>3</td>
<td>3.0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr style="background-color: #CCCCCC;">
<td>Dan McCrory</td>
<td>2</td>
<td>3</td>
<td>1.5</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr style="background-color: #FFFFFF;">
<td>Jacob Desborough</td>
<td>1</td>
<td>1</td>
<td>1.0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr style="background-color: #CCCCCC;">
<td>Katy Hill</td>
<td>5</td>
<td>7</td>
<td>1.4</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
</tbody>
</table>
在这个例子中,我需要将名称标记为</th>
- 希望这有助于澄清我的目标。
答案 0 :(得分:2)
您可以尝试使用:
$first = true;
foreach($Row as $field => $value) {
if ($first) {
$Table .= "<th>$value</th>";
$first = false;
} else {
$Table.= "<td>$value</td>";
}
}
如果我误解了你的问题,请告诉我