Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

MaGGyver

Grünschnabel

Dabei seit: 09.03.2009

Beiträge: 4

 

1 Zum Seitenanfang

Freitag, 13. März 2009, 01:11

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 8) .

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
 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 997

 

2 Zum Seitenanfang

Freitag, 13. März 2009, 08:16

$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
Mein kleines Projekt
-Cruel Online-

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »cccpmik« (13. März 2009, 08:19)

 

heinervdm

Technik-Admin

Dabei seit: 02.10.2002

Beiträge: 3 772

 

3 Zum Seitenanfang

Freitag, 13. März 2009, 09:04

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.
 

MaGGyver

Grünschnabel

Dabei seit: 09.03.2009

Beiträge: 4

 

4 Zum Seitenanfang

Freitag, 13. März 2009, 11:49

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. 8)

@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

Technik-Admin

Dabei seit: 02.10.2002

Beiträge: 3 772

 

5 Zum Seitenanfang

Freitag, 13. März 2009, 12:23


@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.
 

MaGGyver

Grünschnabel

Dabei seit: 09.03.2009

Beiträge: 4

 

6 Zum Seitenanfang

Freitag, 13. März 2009, 14:53

@heinervdm

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?
 

heinervdm

Technik-Admin

Dabei seit: 02.10.2002

Beiträge: 3 772

 

7 Zum Seitenanfang

Freitag, 13. März 2009, 17:16

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.
 

Ähnliche Themen