Thomas: Datenbankabfrage in neue Tabelle schreiben

Hallo,

ich habe mit PHP und MySQL eine Datenbankabfrage zusammengezimmert, die die ursprüngliche Tabelle sowie einige weitere Werte (die mit PHP berechnet werden) in HTML ausgibt. Funktioniert auch so.

Ich würde nur gerne das, was ich als HTML-Tabelle ausgegeben bekomme, auch gern in eine neue MySQL-Tabelle speichern. Leider habe ich nur keinerlei Idee, wie das geht.

Hat jemand eine Lösung oder zumindest einen Ansatz für mich?

Danke
Thomas

  1. Hallo,

    Ich würde nur gerne das, was ich als HTML-Tabelle ausgegeben bekomme, auch gern in eine neue MySQL-Tabelle speichern.

    Wenn Deine MySQL-Version genug aktuell ist, kannst Du es
    wie folgt versuchen:

    INSERT INTO TabelleNeu SELECT *blabla* FROM *xyz*
    http://www.mysql.com/doc/en/INSERT_SELECT.html

    Das spart Dir den Umweg ueber PHP/Schleifen u.s.w.

    Und in den neueren MySQL-Versionen (und sofern es
    erlaubt ist) kann man auch Temporaere Tabellen machen:
    CREATE TEMPORARY TABLE TabelleTemp u.s.w.
    http://www.mysql.com/doc/en/CREATE_TABLE.html

    Gruesse,

    Thomas

    1. Mein Problem existiert immer noch, nur in leicht abgewandelter Form: Syntaktisch funktioniert alles, aber die Bearbeitung durch den Server führt nach ca 10-15Min zu einem Timeout.

      Ich seh wahrscheinlich vor lauter Bäumen den Wald nicht mehr - bitte um Hilfe: Was mache ich falsch. Der Codeabschnitt, der sich mit der DB beschäftigt, lautet folgendermaßen:

      Eine leere Zieltabelle ist bereits angelegt; sie soll nur noch mit Werten gefüllt werden.

      while ($zeile = @ mysql_fetch_array($ergebnis)) // zeilenweises Einlesen der Quell-DB
      {
           verschiedene Berechnungen, von neuen Feldern

      echo "\n<table>\n"
           echo "\n<tr>";
           echo "\n\t<td>{$zeile["feld1"]}</td>";  // Feld der Quell-DB
           echo "\n\t<td>{$zeile["feld2"]}</td>";  // Feld der Quell-DB
           echo "\n\t<td>{$zeile["feld3"]}</td>";  // Feld der Quell-DB
           echo "\n\t<td>{$zeile["feld-a"]}</td>"; // neu berechnetes Feld
           echo "\n\t<td>{$zeile["feld-b"]}</td>"; // neu berechnetes Feld
           echo "\n</tr>";
           echo "\n</table>";                      // Ausgabe der berechneten Felder in HTML - Tabelle
                                                   // bis hierhin funktioniert alles inklusive
                                                   // Berechnung der neuen Felder
           $num_rows = mysql_num_rows($ergebnis);
           while ($num_rows >= 1)
           {
               $einfuegen;
           }
      }

      $abfrage = "SELECT feld1, feld2, feld3 FROM basisdata";

      $einfuegen = mysql_query("INSERT INTO newdata (feld1, feld2, feld3, feld-a, feld-b)
                                VALUES (' ".$zeile["feld1"]." ',' ".$zeile["feld2"]." ',
                                        ' ".$zeile["feld3"]." ',' ".$zeile["feld-a"]." ',
                                        ' ".$zeile["feld-b"]." ')");

      if (!(ergebnis = @ mysql_query ($abfrage, $connection)))
         showerror();

      Es wäre toll, wenn mich jemand mal auf das Problem stoßen könnte oder evtl sogar eine Lösung hätte!

      Danke schon mal,
      Gruß
      Thomas