2016-04-18 10 views
-1

私はPHPとMYSQLの両方が新しく、クエリの結果をテーブルにうまく表示する方法を理解しようとしています。私は、PHPとMySQLの両方、そしてHTMLの方が新しいです。素敵なテーブルでPHPを使用してMYSQLからデータを表示

これまで私は自分のマシンにデータベースを作成し、いくつかのテーブルを作成し、テーブルにデータを挿入し、クエリを発行するために使用できるPHPページを作成しました。私は、希望のクエリを取得することができたが、テーブル内で見栄えを良くする方法や、列名を表示する方法がわからない。また、私のコードは特定のテーブルのためにハードコードされているので、ランダムなテーブル情報もどのように扱うべきかわかりません。ここまで私のPHPコードです。

<html> 
<head><title>PHP MYSQL</title></head> 
<body> 


<form action="." method="GET"> 
<textarea name="query" cols="60" rows="8"></textarea><br /> 
<input type="submit" value="Submit" /> 
</form> 



<?php 



DEFINE('DB_USER', 'cs143'); 
DEFINE('DB_PASSWORD', 'password'); 
DEFINE ('DB_HOST', 'localhost'); 
DEFINE ('DB_NAME', 'TEST'); 

$db_connection = mysql_connect("localhost", "cs143", "") 
OR die("could not connect to databaseaaa !!!"); 

mysql_select_db("TEST", $db_connection); 

$query = $_GET[query]; 
$rs = mysql_query($query, $db_connection); 

if(!$rs) 
{ 
    die("Query failed"); 

} 


while($row = mysql_fetch_row($rs)) 
{ 
    $name = $row[0]; 
    $age = $row[1]; 
    print "$name, $age<br />"; 
} 

?> 

</body> 
</html> 

答えて

0
<table> 
    <th> 
     <td>Name</td> 
     <td>Age</td> 
    </th> 
    <?php while($row = mysql_fetch_row($rs)) { ?> 
     <tr> 
      <td><?php echo $row[0]; ?></td> 
      <td><?php echo $row[1]; ?></td> 
     </tr> 
    <?php } ?> 
</table> 
+0

涼しいので、HTML表を使用してデータを表示できます。しかし、私のテーブルに任意の数のカラムがある場合、どのように表示するのですか? これにはmysql_num_fields関数が必要ですか? –

+0

もちろん、PHPでhtmlを使用することもできます。別の列がある場合は同じ関数を使用し、新しい '​​'と 'echo $ row [n]'を作成してください。 –

+0

私の問題は、このコードはまだハードコードされることです。私は多くのテーブルを持っているので、希望のクエリをテキストエリアに入力し、任意の数のカラムを持つ任意のテーブルから結果を得ることができるようにする必要があります。 –

0

私は私が探していたものを見つけたと思います。私は列とその名前の数を取り出し、データを正しく表示する次のコードを使用します。

<h2>Query result:</h2> 

    <html><body><table border=1 cellspacing=1 cellpadding=2><tr align="center"> 

<?php 

    //print out first row of header fields 
    $i = 0; 
    while($i < mysql_num_fields($rs)) 
    { 
     //meta holds column information (name, description, etc.) 
     $meta = mysql_fetch_field($rs, $i); 
     //output column names along with bold HTML tags via echo 
     echo '<td><b>' . $meta->name . '</b></td>'; 
     $i = $i + 1; 
    } 
?> 


<?php 

    //print out the actual query results 
    $i = 0; 
    while($row = mysql_fetch_row($rs)) 
    { 
     echo '<tr align="center">'; 
     $count = count($row); 
     $y = 0; 
     while($y < $count) 
     { 
      $c_row = current($row); 

      //if any value is NULL (blank), replace it with N/A 
      if($c_row==NULL) 
       echo '<td>N/A</td>'; 
      else 
       echo '<td>' . $c_row . '</td>'; 

      next($row); 
      $y = $y + 1; 
     } 
     echo '</tr>'; 
     $i = $i + 1; 
    } 
?>