Dynamisch (dynamische) Tabellen auslesen (für Fortgeschrittene)?!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Dynamisch (dynamische) Tabellen auslesen (für Fortgeschrittene)?!

    Hallo, Leute!

    Hab mal wieder ein Problemchen und hoffe, ihr könnt mir mal ein bisschen Rückendeckung geben. Es geht um Folgendes - in meiner SQL-Datenbank befinden sich Tabellen im folgenden Muster:

    --------------------------------------------------------------------------------
    (...andere tabellen)
    pz16062004
    pz17062004
    pz18062004
    (...andere tabellen...)
    --------------------------------------------------------------------------------

    Nun möchte ich die Bezeichnungen dieser Tabellen via PHP gerne auslesen, nur, wie soll ich das anstellen? Wie ihr vielleicht bereits bemerkt habt, besteht das Muster (in der Namensgebung) einfach darin, dass vorne "pz" steht und danach das Datum kommt.

    Die Tabellen sind allerdings nicht durchlaufend, d.h. zwischendurch gibt es Lücken, soll heißen: hier und da fehlen ein paar Tabellen für die Tage. Das könnte in etwa so oder so ähnlich aussehen:


    --------------------------------------------------------------------------------
    (...andere tabellen)

    pz13062004
    pz17062004
    pz18062004
    pz19062004

    (...andere tabellen...)
    --------------------------------------------------------------------------------

    Man beachte den Sprung zwischen pz13062004 und pz17062004 - d.h. einfach das Datum durchiterieren, bis festgestellt wird, dass die nächste Tabelle nicht existiert (hier also pz14062004) is nicht.

    Ich bräuchte also irgendeine Form der Abfrage oder der Logik, die es erlaubt, sämtliche Tabellennamen, die mit pz anfangen, der Reihe nach auszugeben. Habt Ihr ne Idee?

    Vielen Dank im voraus,

    Jah bless

  • #2
    SHOW TABLES LIKE 'pz%'

    aber ich habe das unangenehme gefühl, dass die tabellen alle gleich aufgebaut sind und du da lieber eine tabelle mit einer zusätzlichen datumsspalte machen solltest...
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Wie kann ich jetzt die Ergebnisse der SQL-Show-Anweisung in einer eigenen Tabelle abspeichern? So nach dem Motto:

      CREATE neuetabelle TABLE AS (SHOW TABLES LIKE 'pz%')

      Aber wie müsste das dann richtig lauten? Oder gibt es da einen workaround?

      Wäre super, wenn mir jemand noch einen Tipp geben könnte!

      Greetz,

      Ken$hix

      P.S.: Eine Spalte für die "Ergebnis-TABLE" müsste doch ausreichen?

      Kommentar


      • #4
        auslesen und mit INSERT in eine neue tabell einfügen

        mysql_query und mysql_fetch_array usw. helfen dir da weiter
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Könntest Du bitte ein kleines Beispiel (zumindest nen Codeausschnitt) für diesen Fall vorexerzieren? Also dass man die mit SHOW TABLE gewonnen Daten in eine neue Tabelle schreibt? Wäre Dir sehr dankbar dafür.

          Kommentar


          • #6
            *hüstel

            Kommentar


            • #7
              Also hier ein Beispiel:

              Neue Tabelle erzeugen
              (eventuell mit zusätzlicher Spalte für Originaldateiname):
              CREATE TABLE TabelleAlles ...

              Vorhandene Namen in Array:
              SHOW TABLES LIKE 'pz%' -> in $Array halten

              Für jede vorhandene Tabelle ein SQL abschicken: pz16062004-> TabelleAlles
              while array {
              i++
              insert into TabelleAlles select ... from $Array[i]
              }

              Gibt dann etwa so was:
              insert into TabelleAlles select ... from pz16062004
              insert into TabelleAlles select ... from pz17062004
              insert into TabelleAlles select ... from pz18062004

              Kommentar


              • #8
                Man kann die Ergebnis-Tabelle von SHOW TABLES LIKE 'pz%' also in einem Array speichern? Und wie (Syntax, Code)?

                Kommentar


                • #9
                  Original geschrieben von Kenshix
                  Man kann die Ergebnis-Tabelle von SHOW TABLES LIKE 'pz%' also in einem Array speichern? Und wie (Syntax, Code)?
                  Original geschrieben von mrhappiness
                  mysql_query und mysql_fetch_array usw. helfen dir da weiter
                  ... vielleicht doch nochmal die grundlagen durcharbeiten?
                  Kissolino.com

                  Kommentar


                  • #10
                    Wie soll das Array denn dimensioniert sein? Oder soll ich eine Array-Funktion verwenden?

                    variable[$size]=(SHOW TABLE...) funzt ja so nicht?

                    Kommentar


                    • #11
                      Wie soll das Array denn dimensioniert sein? Oder soll ich eine Array-Funktion verwenden?
                      das brauchst du doch garnicht explizit festlegen, die dimension füllen sich doch durch die daten ...

                      variable[$size]=(SHOW TABLE...) funzt ja so nicht?
                      irgendwie nicht, ja.

                      lies diesen thread durch, du solltest alle antworten finden.
                      Die Zeit hat ihre Kinder längst gefressen

                      Kommentar


                      • #12
                        Also in dem Stil :

                        variable[]=(SHOW TABLES LIKE 'pz%')

                        ?

                        Kommentar


                        • #13
                          ???

                          Kommentar


                          • #14
                            nicht rum raten, sondern Grundlagen lernen. Hier im Forum geben wir im allg. keine fertigen Codes. Hinweise hast du genug bekommen, was dir fehlt ist nur noch ... Grundlagenwissen

                            Kommentar


                            • #15
                              Original geschrieben von fuser
                              Also hier ein Beispiel:

                              Neue Tabelle erzeugen
                              (eventuell mit zusätzlicher Spalte für Originaldateiname):
                              CREATE TABLE TabelleAlles ...

                              Vorhandene Namen in Array:
                              SHOW TABLES LIKE 'pz%' -> in $Array halten

                              Für jede vorhandene Tabelle ein SQL abschicken: pz16062004-> TabelleAlles
                              while array {
                              i++
                              insert into TabelleAlles select ... from $Array[i]
                              }

                              Gibt dann etwa so was:
                              insert into TabelleAlles select ... from pz16062004
                              insert into TabelleAlles select ... from pz17062004
                              insert into TabelleAlles select ... from pz18062004
                              Hey Fuser, hast Du vielleicht ICQ?

                              Kommentar

                              Lädt...
                              X