aber es gibt mir nur einen Tabellennamen in einer Datenbank, von der ich weiß, dass sie 2 hat. Was mache ich falsch?
Jason Hey
So kommen Sie an Tische
1. SHOW TABLES
mysql> USE test;
Database changed
mysql> SHOW TABLES;
+----------------+
| Tables_in_test |
+----------------+
| t1 |
| t2 |
| t3 |
+----------------+
3 rows in set (0.00 sec)
2. SHOW TABLES IN db_name
mysql> SHOW TABLES IN another_db;
+----------------------+
| Tables_in_another_db |
+----------------------+
| t3 |
| t4 |
| t5 |
+----------------------+
3 rows in set (0.00 sec)
3. Informationsschema verwenden
mysql> SELECT TABLE_NAME
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'another_db';
+------------+
| TABLE_NAME |
+------------+
| t3 |
| t4 |
| t5 |
+------------+
3 rows in set (0.02 sec)
zu OP
Sie haben nur 1 Zeile abgerufen. so beheben:
while ( $tables = $result->fetch_array())
{
echo $tmp[0]."<br>";
}
und ich denke, information_schema wäre besser als SHOW TABLES
SELECT TABLE_NAME
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'your database name'
while ( $tables = $result->fetch_assoc())
{
echo $tables['TABLE_NAME']."<br>";
}
oder SHOW TABLES IN DB_MANE
– Benutzer557846
25. November 2013 um 1:49 Uhr
Es gibt keinen Grund, es nicht zu verwenden SHOW TABLES es sei denn, die aktive Verbindung verwendet temporäre Tabellen.
– Benutzer188654
25. November 2013 um 1:54 Uhr
@holodoc das ist meine persönliche Meinung. Titel von SHOW TABLEDie Ausgabe von ist so etwas wie 'Tables_in_TBL_NAME'. also bei der Ausführung im Client-Programm. Der Spaltenname wird also geändert. und die Leute wissen nichts über information_schema, das nützlichere Informationen über DB enthält
– Jason Hey
25. November 2013 um 2:02 Uhr
Perfekt. Aus irgendeinem Grund dachte ich, dass es nur ein Array der tatsächlichen Tabellen zurückgeben würde, keine Zeilen.
– Jadar
25. November 2013 um 3:53 Uhr
Lösung #3 gefällt mir am besten. Das information_schema.tables Tabelle gibt mir viel mehr Informationen. Immer schön reinzuschauen
– peterb
27. November 2017 um 4:10 Uhr
Versuche dies:
SHOW TABLES FROM nameOfDatabase;
SHOW TABLE_NAME ist ungültig. Probieren Sie SHOW TABLES aus
TD
Hoppla, das wollte ich ändern. Ich habe verschiedene Dinge getestet und einfach meinen Code kopiert und eingefügt. Es war SHOW TABLES
– Jadar
25. November 2013 um 3:27 Uhr
SHOW TABLES listet nur die nicht-TEMPORARY-Tabellen in einer bestimmten Datenbank auf.
<?php
$dbname="mysql_dbname";
if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_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: {$row[0]}\n";
}
mysql_free_result($result);
?>
//Try This code is running perfectly !!!!!!!!!!
Dies ist nur ein Codeschnipsel. Wenn es sich um eine tatsächliche Antwort handelt, sollte sie erklären, wie sie funktioniert und warum sie eine bessere Antwort ist als die anderen.
– Jadar
31. März 2016 um 21:31 Uhr
Ich fand dies als schnellen Ausschnitt zum Experimentieren nützlich. Vielen Dank!
– Nick Weber
11. April 2019 um 15:46 Uhr
Dies ist nur ein Codeschnipsel. Wenn es sich um eine tatsächliche Antwort handelt, sollte sie erklären, wie sie funktioniert und warum sie eine bessere Antwort ist als die anderen.
– Jadar
31. März 2016 um 21:31 Uhr
Ich fand dies als schnellen Ausschnitt zum Experimentieren nützlich. Vielen Dank!
– Nick Weber
11. April 2019 um 15:46 Uhr
14075700cookie-checkAlle Tabellen in einer MySQL-Datenbank mit PHP anzeigen?yes