Ankündigung

Einklappen
Keine Ankündigung bisher.

Abfrage aller Tabellen über Schleife

Einklappen

Neue Werbung 2019

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

  • Abfrage aller Tabellen über Schleife

    Hallo zusammen,

    ich beschreibe es mal ganz einfach:

    Es kommen andauernd neue Tabellen in meiner DB.
    Ich habe eine Abfrage drin, die alle Tabellen durchsuchen soll.
    damit ich nicht jedes mal im Quellcode rumpfuschen muss,
    könnte man es doch über eine Schleife regeln, oder?!

    Nur die Frage, wie macht man sowas am besten?


  • #2
    Wo genau liegt denn das Problem?
    Wie man eine Schleife erstellt? Wie man an die Namen der Tabellen kommt? ...

    Schau dir mal mysql_list_tables() und mysql_tablename() in der Doku an.
    Damit alle Tabellen auslesen in einer Schleife und dann innerhalb der Schleife jede Tabelle abfragen.
    Wenn du noch ein konkretes Problem hast, dann frag nochmal hier.

    Kommentar


    • #3
      Hab grad selbst gemacht, Übung macht den Meister
      Und damit die leute nicht dumm sterben die das gleiche Problem haben,
      hier der Code(evtl. mit Syntaxfehlern, hab es noch nicht eingebunden,
      müsste aber klappen):



      PHP-Code:
      <?php
      $tabs
      =array();
      $res mysql_list_tables("datenbank");
      while (
      $row=mysql_fetch_row($res))
      {
          if (
      substr($row[0],0,5) =="host:_")
          {
          
      array_push($tabs,$row[0]);
          }
       }

      $sql="";
      foreach (
      $tabs as $tab)
      {
      $str="(SELECT $tab..host, daten.id, standort.prefix

      FROM 
      $tab, daten, standort, mitarbeiter
      WHERE 
      $tab.id = daten.id AND standort.id = mitarbeiter.standort_id AND mitarbeiter.id = daten.id)";

      if (
      $sql == ""$sql .= $str; else $sql.=" UNIION ".$str;


      }
      ?>
      Was ich vorher nicht erwähnt habe, ich suche nach allen tabellen die mit
      host_ anfangen.

      Jemand Einwände?

      Kommentar


      • #4
        ich würde dir eher empfehlen, das db-design zu überdenken. wenn andauernd neue tabellen dazukommen, hast du definitiv was falsch gemacht.

        Kommentar


        • #5
          Jemand Einwände?
          Code:
          SHOW TABLES FROM datenbank LIKE "host%"

          Kommentar


          • #6
            Und was ist wen ich eine Tabelle habe die hostgesamt o.ä. habe?
            Dann liest er die mit, soll aber nur alle auslesen die mit "host_" beginnen.

            Kommentar


            • #7
              na komm, den schritt kannste wohl selber gehen?

              achtung: _ ist wildcard und muß, wenn erfordelich, maskiert werden => \_

              ändern leiber dein tabellendesign, die obige query ist schon ziemlich schlecht formuliert, in einer schleife ists der totale overkill.

              Kommentar


              • #8
                Zitat von derHund
                na komm, den schritt kannste wohl selber gehen?
                Das war keine Frage, das war eine Aussage
                Zitat von derHund
                ändern leiber dein tabellendesign, die obige query ist schon ziemlich schlecht formuliert, in einer schleife ists der totale overkill.
                Kannst Du das mal bitte erläutern?

                Kommentar

                Lädt...
                X