Auslesen der Anzahl bzw. Namen der Tabellen in einer Datenbank
Hallo Leute,
wie ich oben schon beschrieben habe, möchte ich ganz gerne neben der Anzahl auch die einzelnen Namen der Tabellen einer bestimmten DB angeben.
Komme da absolut nicht weiter. Bin allerdings auch gerade erst mit PHP und MYSQL gestartet; Newbie also
.
habe es jetzt schon intensive mit
probiert, aber das Array hat trotz zahlreicher Tabellen nur einen Eintrag. Es zeigt demnach nur Tabelle1 an, obwohl noch viele weitere folgen.
ebenso habe ich es mit
probiert. Das Problem ist, ich muss halt wissen, wie viele Integerwerte ($i von 0-X) ich vergeben muss, damit ich alle Namen auflisten kann. Übersteigt der Integerwert die Anzahl der Tabellen kommt eine Fehlermeldung, so dass ich nicht willkürlich in einer for-Schleife 100-Wiederholungen laufen lassen kann.
Vielen Dank im Voraus.
MaGGyver
wie ich oben schon beschrieben habe, möchte ich ganz gerne neben der Anzahl auch die einzelnen Namen der Tabellen einer bestimmten DB angeben.
Komme da absolut nicht weiter. Bin allerdings auch gerade erst mit PHP und MYSQL gestartet; Newbie also
.habe es jetzt schon intensive mit
|
|
PHP-Quelltext |
1 2 |
$res=mysql_list_tables($db)
$namen=mysql_fetch_array($res)
|
probiert, aber das Array hat trotz zahlreicher Tabellen nur einen Eintrag. Es zeigt demnach nur Tabelle1 an, obwohl noch viele weitere folgen.
ebenso habe ich es mit
|
|
PHP-Quelltext |
1 2 |
$res=mysql_list_tables($db)
$namen[$i]=mysql_tablename($res,$i)
|
probiert. Das Problem ist, ich muss halt wissen, wie viele Integerwerte ($i von 0-X) ich vergeben muss, damit ich alle Namen auflisten kann. Übersteigt der Integerwert die Anzahl der Tabellen kommt eine Fehlermeldung, so dass ich nicht willkürlich in einer for-Schleife 100-Wiederholungen laufen lassen kann.
Vielen Dank im Voraus.
MaGGyver
$sql = mysql_query("Select * FROM tabelle");
$anzahl = mysql_num_rows($sql); // da drin steht jetzt wieviele zeilen du hast wenn du die sql abfrage ausführst
//werte aus db holen und an array übergeben
$i = 0;
while($werte = mysql_fetch_array($sql))
{
$wert[$i] = $werte["tabellen_name"];
$wert[$i+1] = $werte["tabellen_name2"];
$wert[$i+2] = $werte["tabellen_name3"];
$i += 3; // 3 ist anzahl spalten in der tabelle
}
// werte ausgeben zum späteren zeitpunkt
for($i = 0;$i<count($wert);$i++)
{
echo $wert[$i]."<br/>";
}
MFG
EDIT: oops habe mich verlesen du willst ja spalten überschriften rausholen aus der db
schau mal hier
http://de.php.net/mysql_tablename da ist ja ein beispiel da werden anzahl der spalten mit mysql_num_rows geholt und in einer vorschleife werden mit mysql_tablename ausgegeben
$anzahl = mysql_num_rows($sql); // da drin steht jetzt wieviele zeilen du hast wenn du die sql abfrage ausführst
//werte aus db holen und an array übergeben
$i = 0;
while($werte = mysql_fetch_array($sql))
{
$wert[$i] = $werte["tabellen_name"];
$wert[$i+1] = $werte["tabellen_name2"];
$wert[$i+2] = $werte["tabellen_name3"];
$i += 3; // 3 ist anzahl spalten in der tabelle
}
// werte ausgeben zum späteren zeitpunkt
for($i = 0;$i<count($wert);$i++)
{
echo $wert[$i]."<br/>";
}
MFG
EDIT: oops habe mich verlesen du willst ja spalten überschriften rausholen aus der db
schau mal hier
http://de.php.net/mysql_tablename da ist ja ein beispiel da werden anzahl der spalten mit mysql_num_rows geholt und in einer vorschleife werden mit mysql_tablename ausgegeben
Mein kleines Projekt
-Cruel Online-
-Cruel Online-
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »cccpmik« (13. März 2009, 08:19)
Versuchs mal mit diesem MySQL Query:
|
|
MySQL-Abfrage(n) |
1 |
SELECT table_name FROM information_schema.tables ORDER BY table_name DESC; |
Über mich: www.heinervdm.de
Persönlich Mitteilungen an mich bitte als PN (nicht Email) hier im Forum. ICQ und Skype bitte nur in Notfällen.
Persönlich Mitteilungen an mich bitte als PN (nicht Email) hier im Forum. ICQ und Skype bitte nur in Notfällen.
schau mal hier
http://de.php.net/mysql_tablename da ist ja ein beispiel da werden anzahl der spalten mit mysql_num_rows geholt und in einer vorschleife werden mit mysql_tablename ausgegeben
Hey cccpmik,
erstmal herzlichen Dank, denn genau das ist die Lösung:
|
|
PHP-Quelltext |
1 2 |
$res = mysql_list_tables($db)
$rcount = mysql_num_rows($res)
|
damit hat man die Anzahl der Tabellen in der Datenbank und kann damit weiter auf die Namen schließen. Ist mir nen bissle peinlich, dass es als Beispiel im PHP-Manuel steht... naja.. habe wohl gestern Nacht nicht mehr so klar lesen können.
@heinervdm
habe die MySQL-Abfrage mal ausprobiert und mit nem mysql_fetch_array ausgewertet; es zeigt allerdings keine Einträge. Aber da es jetzt mit num_rows funktioniert, werde ich es so machen.
Vielen Dank für die schnellen Antworten.
MaGGyver
@heinervdm
habe die MySQL-Abfrage mal ausprobiert und mit nem mysql_fetch_array ausgewertet; es zeigt allerdings keine Einträge. Aber da es jetzt mit num_rows funktioniert, werde ich es so machen.
Der Query muss funktionieren, du darfst vorher nur keine Datenbank Auswählen, oder musst die Datenbank information_schema auswählen.
Über mich: www.heinervdm.de
Persönlich Mitteilungen an mich bitte als PN (nicht Email) hier im Forum. ICQ und Skype bitte nur in Notfällen.
Persönlich Mitteilungen an mich bitte als PN (nicht Email) hier im Forum. ICQ und Skype bitte nur in Notfällen.
@heinervdm
so habe es nochmal probiert, aber kein Erfolg.
habe folgendes in die php-Datei geschrieben:
bei $array[0] gab es die Ausgabe "VIEWS"
bei $array[1] kam nix.
send_sql($db, $sql) ist nix anderes als mysql_db_query($db, $sql), aber gibt noch ne Fehlermeldung aus, wenns nicht klappt.
Was habe ich falsch gemacht?
so habe es nochmal probiert, aber kein Erfolg.
habe folgendes in die php-Datei geschrieben:
|
|
PHP-Quelltext |
1 2 3 |
$sql = "SELECT table_name FROM information_schema.tables ORDER BY table_name DESC";
$array = mysql_fetch_array(send_sql("information_schema", $sql));
echo $array[0];
|
bei $array[0] gab es die Ausgabe "VIEWS"
bei $array[1] kam nix.
send_sql($db, $sql) ist nix anderes als mysql_db_query($db, $sql), aber gibt noch ne Fehlermeldung aus, wenns nicht klappt.
Was habe ich falsch gemacht?
Hmm, seltsam. In PHPmyAdmin funktioniert es. Mit einer PHP Datei bekomme ich es allerdings auch nicht hin.
Über mich: www.heinervdm.de
Persönlich Mitteilungen an mich bitte als PN (nicht Email) hier im Forum. ICQ und Skype bitte nur in Notfällen.
Persönlich Mitteilungen an mich bitte als PN (nicht Email) hier im Forum. ICQ und Skype bitte nur in Notfällen.
Ähnliche Themen
-
FreeWebspace »-
Datenbank Problem
(31. Januar 2008, 23:37)
-
PHP »-
nur ne bestimmte anzahl an zeichen auslesen
(13. Oktober 2007, 12:49)
-
Datenbanken »-
Tabellen in Datenbank verschwinden!
(3. September 2006, 16:08)
-
Flash »-
Flash und MySQL
(28. August 2003, 13:30)


