mysql Zahler

valeripf

Erfahrenes Mitglied
kann mir noch mal koregieren

ich habe so probiert

PHP-Code:

PHP:
$abfrage =  ('SHOW TABLES FROM ' . $dbname); 
        $ergebnis = mysql_query($abfrage);
        $menge = mysql_num_rows($ergebnis);
aber es zunktionier nicht richtig es zahlt wieder tabellen und nicht eintage in jeder tabelle

und noch eine frage wie kriege Anzal der eintage die nur heute angekommen ist
 
Es funktioniert richtig. Du denkst nur aus irgendeinem Grund, dass die Query das machen würde, was du da beschreibst.

SHOW TABLES FROM db_name liefert dir die Namen aller Tabellen in db_name. Für jeden dieser Namen (tbl_name) führst du nun noch einmal SELECT COUNT(*) FROM tbl_name aus, was dir die Anzahl der Einträge liefert.

Die Anzahl der Einträge, die an einem bestimmten Tag in eine Tabelle eingefügt worden sind, kannst du nur ermitteln, wenn du in der Tabelle das Einfügedatum gespeichert hast.

Die mysql-Extension ist übrigens veraltet. Nutze mysqli oder PDO.

- http://phpforum.de/forum/showthread.php?t=264056
 
Dein Code macht auch exakt was Du ihm gesagt hast: es gibt die die Anzahl Tabellen aus.

Wenn Du jetzt noch von jeder Tabelle die Anzahl Datensätze haben willst, musst Du konkret auf diese Tabellen zugreifen. Mit einer einzigen Tabelle geht das z.B. so:

PHP:
$abfrage =  ('SELECT * FROM ' . $tablename); 
        $ergebnis = mysql_query($abfrage);
        $menge = mysql_num_rows($ergebnis);

Um das von allen Tabellen zu erhalten, könntest Du z.B. dein Statement mit SHOW TABLES verwenden um in einer while-Schleife durch alle Tabellen zu gehen. Innerhalb der Schleife zählst Du dann pro Tabelle die Anzahl Datensätze darin.

Und deine 2. Frage: das kannst Du nur umsetzen wenn Du in jeder Tabelle auch einen Zeitstempel pro Datensatz speicherst. Dann kannst Du bei einem SELECT * FROM table mit WHERE die Datenmenge auf die Datensätze beschränken, die von heute sind.
 
Zurück