PHP mySQL DUMP die 2te

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

  • PHP mySQL DUMP die 2te

    Hallo zusammen,

    ich benötige immernoch einen PHP Befehl um einen Dump einer bestimmten Tabelle aus einer mySQL DB zu machen. Die Felder sollen mit Semikolon getrennt werden (CSV).
    Aus der mySQL Anleitung werde ich nicht schlau. Habe alles probiert, zeigt mir aber immer einen Fehler.

    Der Dump soll dann in eine Datei geschrieben werden.
    Das mir der Datei bekomme ich schon hinn wenn ich weiss wie ich alles in eine Variable $dump bekomme.

    Wer hat da einen Codeschnipsel für mich? *liebschau*

    In erwartungsvoller Hoffnung, der Andi


    __________________
    Computer sind Scheiße ;-)

  • #2
    Warum benutzt du nicht den MyAdmin ??
    Der macht doch alles von selbst ??

    Kommentar


    • #3
      Oh Leute, warum schreibt den keiner die Antwort auf meine Frage, sondern nur gegenfragen?

      Ich benötige diese Funktion, damit der Kunde, der von PHP null Ahnung hat, aus eine Adressdatenbank per Knopfdruck einen Dump machen kann und diesen dann als Textdatei speichern kann, um ihn anschliessen in Excell zu importieren.
      Hab ich mit nicht ausgedacht, ist Kundenwunsch.

      Deshalb kein phpMyAdmin!

      Entschuldigt meine Gereitzsheit, aber ich gerate langsam in Zeitdruck!

      So long...

      Kommentar


      • #4
        mit dem mysqldump kann es probleme geben, wenn die db auf einen ANDEREN server ist wie die die domain. ich hatte mal den selben wunsch eines kunden, ging aber wegen oben beschriebener konstellation nicht. alternative: schreib doch alle daten in eine textdatei mit folgendem schema:

        $erste.';'.$zweite.';'.$dritte.';'$vierte."\n" etc
        dann hast du auch eine csv-datei
        gruss
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Original geschrieben von andik2000
          ... per Knopfdruck einen Dump machen kann und diesen dann als Textdatei speichern kann, um ihn anschliessen in Excell zu importieren...
          Warum so umständlich?

          Einfach Tabelle auslesen, HTML-Tabelle als .XLS speichern, aufrufen -> wird (eventuell im IE-Fenster) von Excel geöffnet.
          Code:
          mysql_connect(...);
          mysql_select_db(...);
          $table = '...';
          
          $q = mysql_query("show fields from $table");
          $f = fopen('dump.xls', 'w');
          fwrite ($f, '<table><tr align="left">');
          $fields = array();
          while ($x = mysql_fetch_assoc($q))
            fwrite($f, '<th>'. ($fields[] = $x['Field']). '</th>');
          fwrite($f, '</tr>');
          $q = mysql_query ("select * from $table");
          while ($x = mysql_fetch_assoc($q))
          {
            fwrite($f, '<tr align="left">');
            foreach ($fields as $field)
              fwrite($f, '<td>'. $x[$field]. '</td>');
            fwrite($f, '</tr>';
          }
            fwrite($f, '</table>');
          fclose($f);
          header('Location: dump.xls');
          // falls der header-Befehl fehlschlägt: meta-refresh
          die ('<meta http-equiv="refresh" content="0;dump.xls">');
          Statt fwrite & co zu benutzen kannst du natürlich die HTML-Tabelle auch einfach per echo auswerfen, dann kann sie mit Strg+A (alles markieren), Strg+C (Copy) in die Zwischenablage kopiert und mit Strg+V in Excel eingefügt werden.
          mein Sport: mein Frühstück: meine Arbeit:

          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

          Kommentar


          • #6
            @ Kropf:
            Domain und DB liegen auf einem Server, nur der Kunde hat keine Ahnung von phpMyadmin und sucht eine einfache Lösung um die aktuellen Einträge mit seine lokalen Adressdatenbank abzugleichen.
            Der Vorschlag von Dir ist natürlich auch eine Möglichkeit, ich dachte halt nur, dass es mit einem direkten Dump einfacher geht.

            THX

            @ Titus
            Ja cool, das ist auch eine gute Sache, probier ich mal aus.


            Kann es sein, dass so ein Dump gar keine so eindache Sache ist, gibt es denn da keinen einfachen SQL-Befehl für?
            Wie macht deas denn MyAdmin? Ich habe mal einen kurzen Blick in den Quelltext geworfen, aber da blicke ich nicht durch.

            Dank auf jeden Fall erstmal, das ist schon ein sehr guter Ansatz.

            Gruß, Andi

            Kommentar


            • #7
              Hallo Titus.
              1:1 umgesetzt => klappt perfekt.
              Vielen Dank.
              mfg


              EDIT:
              Naja, da auf meinem Server wg. den fopen usw. wieder mal irgend ein "denied" vorkam, hier die Lösung mit echos.
              HTML-Seite als blablabla.xls abspeichern, Dateityp *.txt. Kann (bei mir zumindest) mit excel geöffnet werden.

              Code:
              <?php
              $db = mysql_connect(...);
              mysql_select_db('the_db');
              $table='the_table';
              
              
              $q = mysql_query("show fields from $table");
              echo '<table><tr align="left">';
              $fields = array();
              while ($x = mysql_fetch_assoc($q))
              	echo "<th>" . ($fields[] = $x['Field']). "</th>";
              echo "</tr>";
              $q = mysql_query ("select * from $table");
              while ($x = mysql_fetch_assoc($q))
              {
              	echo '<tr align="left">';
                		foreach ($fields as $field)
              		echo "<td>" . $x[$field]. '</td>';
                  	echo "</tr>";
              }
              	echo "</table>";
              mysql_close($db);
              ?>
              mfg
              Zuletzt geändert von CHnuschti; 22.04.2002, 03:06.

              Kommentar

              Lädt...
              X