3

特定の列が特定のものに等しいデータベース内のすべてのテーブルのリストを取得する必要があるコードがあります。ただし、SHOW TABLESMySQLコードを使用すると、スペースで始まるテーブルのみが一覧表示されます。これが私のコードです...

$result = mysql_query("SHOW FULL TABLES IN `db`") or die("Error: " . mysql_error());
while ($word = mysql_fetch_array($result)) {
    $word = $word[0];
    $sql = "SELECT * FROM `db`.`$word` WHERE col='$val'";
    $result = mysql_query($sql, $con) or die("Error: " . mysql_error());
    while ($col = mysql_fetch_array($result)) echo "<li><a nav='$word' title='View $word'>$word</a></li>";
}

何らかの理由で、最初のmysql_query()結果は1つの結果のみを返します。これは、スペースで始まるテーブルです。(全体でスペースで始まる唯一のテーブルです)編集:$wordを配列から文字列に変換するコード行を省略したことに気づきました...それは今そこにあります。

4

1 に答える 1

2

ループ内で$result(テーブルリスト)を上書きしています。

最初の反復の後、$resultには最初のテーブルのフィールドのリストが含まれます。

于 2012-11-04T10:22:12.757 に答える