2011-07-06 23 views
1

各テーブルの最初の行を印刷するにはどうすればよいですか?テーブル名を取得し、それぞれの最初の行を印刷

<?php 
$dbname = 'mysql_database'; 

if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) { 
echo 'Could not connect to mysql'; 
exit; 
} 

mysql_select_db($dbname); 

$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 "<br>Table name is: {$row[0]}\n"; 

// Make a MySQL Connection 
$tableQuery = "SELECT * FROM $dbname.$row[0] LIMIT 1"; 
$tableResult = mysql_query($tableQuery) or die(mysql_error()); 

$firstRow = mysql_fetch_array($tableResult) or die(mysql_error()); 
//echo $firstRow['name']. " - ". $firstRow['age']."<br>"; 
    //how do i print field name row and first row of values 
    //if I don't know the field names 


} 

//mysql_free_result($result); 
?> 
+1

を1行をフェッチします、これは働いていませんか?代わりに何が印刷されますか? – sdleihssirhc

+0

"データベースが選択されていません" – sandraqu

答えて

3

あなたは

mysql_select_db($db_name); 

またはので、あなたの内側のクエリが失敗している

$tableQuery = "SELECT * FROM $db_name." . $row[0]; 

を行うことをやってのいずれかによって、デフォルトのDBを変更していませんでした。

+0

もう少しお待ちください。私は初心者です。私は各テーブルの値の最初の行を印刷しようとしています。私の以前の言葉は混乱しているかもしれません。 db、host、user、passwdの値(つまりmysql_database)はプレースホルダです。 – sandraqu

+0

私はクリケットを手に入れます。あなたが持っている$ tableQuery行を含む完全な空白ページの結果。 – sandraqu

+0

クエリをエコーアウトし、手動で実行してみてください。 –

0

私はあなたが「は、それぞれのテーブルの最初の行」によって何を意味するかわからないんだけど しかし

SELECT * FROM tbl LIMIT 1 

注使用1行に結果を制限する:これは単に、最初に見つかった行を取得し、これを挿入された最初の行であってもなくてもよく、挿入された最後の行であってもよい。 明示的な順序は暗示されていません。

0

変更するには、以下のようなクエリは、テーブルに

$tableQuery = "SELECT * FROM ".$row[0]."LIMIT 1"; 
+0

oy!結果は次のとおりです。SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックし、正しい構文が第1行目の '1'の近くで使用されるようにしてください。 – sandraqu

+0

mysqlに接続した後(最初のif文の後)にmysql_select_db($ dbname)と書いてください。あなたのエラーを解決します。 – Chintan

関連する問題