2010-11-18 4 views
0

私はGoogleで見てきたが、私はPHPを介してSQLテーブルを表示するための最善の、最も簡単な方法を見つけることができませんでした。私はPHPとSQLの新機能ですので、少し混乱しています。私はこれまでこれを持っていますが、私は行がどのように動作するかについてもわかりません。テーブル全体を表示したいだけです。PHPを介してSQLテーブルを表示する最適な方法は何ですか?

<?php 
$dbname = 'my_db'; 

if (!mysql_connect('localhost', 'username', 'password')) { 
    echo 'Could not connect to mysql'; 
    exit; 
} 

$sql = "SHOW TABLES FROM $dbname"; 
$result = mysql_query($sql); 

if (!$result) { 
    echo "DB Error, could not list tables\n"; 
    echo 'MySQL Error: ' . mysql_error(); 
    exit; 
} 

while ($row = mysql_fetch_row($result)) { 
    echo "Table: {*}\n"; 
} 

mysql_free_result($result); 
?> 
+1

あなたは、テーブル名やテーブルの内容を表示しようとしていますか?また、ここでは非常に注意してください。 「PHPとSQLの初心者」であれば、コードのどこかにSQLインジェクションの脆弱性を開く可能性があります。ユーザーにすべてのテーブルの名前を与えることで、その脆弱性がさらに広がります。 – David

答えて

0

以下のコードでは、指定したデータベースのテーブル名のみを表示する必要があります。

while ($row = mysql_fetch_row($result)) { 
    echo "Table: {$row[0]}\n"; 
} 

あなたが各テーブルの内容を表示したい場合は、このような何か行う必要があります:あなたが探しているものをおそらく

mysql_select_db($dbname); 
while ($row = mysql_fetch_row($result)) { 
    //echo "Table: {$row[0]}\n"; 

    $query = "SELECT * FROM $row[0]"; 
    $table = mysql_query($query); 

    echo "<table>"; 
    while($content = mysql_fetch_array($table)){ 
      echo "<tr>"; 
     foreach($content as $key => $value){ 
      echo "<td>" . $value . "</td>"; 
     } 
      echo "</tr>"; 
    } 
    echo "</table>"; 

} 
0

をどの意志DESCRIBEhttp://dev.mysql.com/doc/refman/5.0/en /describe.htmlですあなたのコード

のこのPARTEを交換する場合

mysql> DESCRIBE City; 
+------------+----------+------+-----+---------+----------------+ 
| Field  | Type  | Null | Key | Default | Extra   | 
+------------+----------+------+-----+---------+----------------+ 
| Id   | int(11) | NO | PRI | NULL | auto_increment | 
| Name  | char(35) | NO |  |   |    | 
| Country | char(3) | NO | UNI |   |    | 
| District | char(20) | YES | MUL |   |    | 
| Population | int(11) | NO |  | 0  |    | 
+------------+----------+------+-----+---------+----------------+ 

:あなたのような何かを与えます10

while ($row = mysql_fetch_row($result)) { 
    echo "Table: {*}\n"; 
} 

while ($row = mysql_fetch_row($result)) { 
    print_r($row); 
} 

によって、あなたはに設定されているもの $row良くundestandます。一方

UPDATE

あなただけのあなたには、いくつかのテーブルを持っているすべてのデータをフェッチしようとしている場合は、あなたがしなければならないクエリは次のようなものになりますSELECThttp://dev.mysql.com/doc/refman/5.0/en/select.htmlです:

$sql = "SELECT * FROM table_name"; 
関連する問題