0

別の関数からこの関数を使用して、PHP クエリからテーブルを生成します。フィラメント jQuery 視覚化プラグインを使用してグラフを生成しようとしています。<th>ただし、チャートがヘッダーとして適切に認識できるように、最初の列の各値にタグを付ける必要があるようです。「列番号が1の場合、それに追加する」という観点からif​​ステートメントを入れる必要があると思いますが<th>、これが以下のコードのどこに行くのかわかりません。何か案は?

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>。これが私の目的を明確にするのに役立つことを願っています。

4

1 に答える 1

2

You could try using :

$first = true;
foreach($Row as $field => $value) {
    if ($first) {
        $Table .= "<th>$value</th>";
        $first = false;
    } else {
        $Table.= "<td>$value</td>";
    }
}

Let me know if I misunderstood your question

于 2012-08-24T10:07:06.203 に答える