Ankündigung

Einklappen
Keine Ankündigung bisher.

SQL-Tabelle über php in txt-File ausgeben

Einklappen

Neue Werbung 2019

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

  • SQL-Tabelle über php in txt-File ausgeben

    Hallo zusammen

    ich versuche eine SQL-Tabelle (MariaDB10) über ein PHP-Script in eine TXT-Datei zu exportieren. Ebenso möchte ich einige Spalten auslassen und als Spaltentrennung sollte entweder ein Tabulatorabstand oder mind. ein Leerzeichen stehen. Ebenso muss jede Tabellenzeile in der TXT auch eine neue Zeile sein.

    Mit meinem Code wird aber alles in einen Fliesstext ohne Abstände ausgegeben.

    PHP-Code:
      <?php $fp fopen("newfile.txt","w"); $db = new mysqli("127.0.0.1:3307","Benutzername","Password","Datenbank"); if ($rs $db->query("SELECT * FROM Tabellenname")) {   while ($row $rs->fetch_assoc())   {     fputcsv($fp$row);   }   $r>close(); } fclose($fp);
    Kann mir hier jemand helfen?
    Grüsse
    Oliver

  • #2
    Der Code ist auch nur eine reiner Fließtext und so nicht lesbar.

    Kommentar


    • #3
      Zitat von ri8 Beitrag anzeigen
      Mit meinem Code wird aber alles in einen Fliesstext ohne Abstände ausgegeben.
      Sicher? Womit überprüfst du das?

      Außerdem: kein »SELECT *« verwenden, immer angeben welche Spalten benötigt werden.

      Kommentar


      • #4
        Zitat von hellbringer Beitrag anzeigen
        Der Code ist auch nur eine reiner Fließtext und so nicht lesbar.
        Sorry..hier nochmals..

        PHP-Code:
        <?php
        $fp 
        fopen("newfile.txt","w");
        $db = new mysqli("127.0.0.1:3307","Benutzername","Passwort","Datenbank");
        if (
        $rs $db->query("SELECT * FROM Tabelle"))
        {
        while (
        $row $rs->fetch_assoc())
        {
        fputcsv($fp$row);
        }
        $rs->close();
        }
        fclose($fp);
        ?>

        Kommentar


        • #5
          Ist es denn so schwer mal unsere Tipps umzusetzen?
          tk1234 hat dir doch im vorherigen Beitrag gesagt du sollst kein Select mit Stern verwenden, bitte ändere das mal wenigstens jetzt. Siehe auch unsere FAQ dazu.

          Kommentar


          • #6
            Zitat von tk1234 Beitrag anzeigen
            Sicher? Womit überprüfst du das?

            Außerdem: kein »SELECT *« verwenden, immer angeben welche Spalten benötigt werden.
            Sorry, keine Ahnung was du meinst mit "Überprüfen". Bin Anfänger in PHP, wäre deshalb über einen Tipp oder Korrektur des Codes dankbar, damit hier die Spalte 2,3 und 4 der Tabelle in eine TXT ausgegeben wird...

            newfile.txt sollte so aussehen

            Zeile1Wert1 Zeile1Wert2 Zeile1Wert3
            Zeile2Wert1 Zeile2Wert2 Zeile2Wert3
            Zeile3Wert1 Zeile3Wert2 Zeile3Wert3
            ....


            ..ohne, dass die Spaltenüberschrift mit ausgegeben wird.

            Kommentar


            • #7
              Code:
              SELECT spalte2, spalte3, spalte4 FROM tabelle

              Kommentar


              • #8
                Zitat von ri8 Beitrag anzeigen
                Sorry, keine Ahnung was du meinst mit "Überprüfen".
                Womit lässt du dir die Datei anzeigen? Evtl. zeigt das Programm die Zeilenumbrüche nur nicht an?

                Kommentar


                • #9
                  Zitat von hellbringer Beitrag anzeigen
                  Code:
                  SELECT spalte2, spalte3, spalte4 FROM tabelle
                  Vielen Dank, hat geklappt..leide aber erhalte ich als Spaltentrennzeichen immer in Komma..kann dies auch nur mit einem Leerzeichen exportiert werden?

                  Kommentar


                  • #10
                    Zitat von tk1234 Beitrag anzeigen
                    Womit lässt du dir die Datei anzeigen? Evtl. zeigt das Programm die Zeilenumbrüche nur nicht an?
                    ja das war das Problem, danke. Habe den Windows-Texteditor verwendet..

                    Kommentar


                    • #11
                      Zitat von ri8 Beitrag anzeigen
                      Vielen Dank, hat geklappt..leide aber erhalte ich als Spaltentrennzeichen immer in Komma..kann dies auch nur mit einem Leerzeichen exportiert werden?
                      Warum schaust du nicht ins PHP-Handbuch?

                      https://www.php.net/manual/de/function.fputcsv.php

                      Kommentar


                      • #12
                        Ich werfe mal noch den direkten CSV export via SELECT ... INTO OUTFILE in den Raum...

                        Kommentar


                        • #13
                          Zitat von hellbringer Beitrag anzeigen

                          Warum schaust du nicht ins PHP-Handbuch?

                          https://www.php.net/manual/de/function.fputcsv.php
                          habe ich gemacht, komme aber nicht weiter. Bei jedem Export, werden Kommas als Trennzeichen ausgegeben. Ich gehe davon aus, dass es am fputcsv liegt. CSV hat ja bekanntlich immer irgendwelche Trennzeichen.

                          Wie kann ich die Tabelle in eine Textdatei exportieren, sodass nur ein Leerzeichen als Spaltentrenner und jeweils einen neue Zeile für den nächsten Eintrag generiert wird? In der HTML-Ausgabe bring ich es hin..

                          PHP-Code:
                          ....

                          while (
                          $zeile mysqli_fetch_array$db_ergMYSQLI_ASSOC))
                          {
                          //  echo "<tr>";
                            
                          echo ""$zeile['Spalte1'] . " ";
                            echo 
                          ""$zeile['Spalte2'] . " ";
                            echo 
                          ""$zeile['Spalte3'] . "";
                            echo 
                          "<br>";
                          }

                          .... 


                          mein jetziger Stand...immernoch..

                          PHP-Code:

                          <?php

                          $fp 
                          fopen("newfile.txt","w");
                          $db_link = new mysqli("127.0.0.1:3307","BENUTZERNAME","PASSWORD","DATENBANK");
                          $sql "SELECT Spalte1, Spalte2, Spalte3 FROM TABELLE";

                          if (
                          $rs $db_link->query("SELECT Spalte1, Spalte2, Spalte3 FROM TABELLE"))

                          {
                            while (
                          $row $rs->fetch_assoc())
                            {
                              
                          fputcsv($fp$row);
                          //    fwrite($fp, $row);)   not workin
                            
                          }
                            
                          $rs->close();
                          }
                          fclose($fp);
                          ?>

                          Kommentar


                          • #14
                            Zitat von ri8 Beitrag anzeigen
                            habe ich gemacht, komme aber nicht weiter. Bei jedem Export, werden Kommas als Trennzeichen ausgegeben.
                            Warum das so ist steht im Handbuch von PHP. Wenn du kein Handbuch lesen kannst, hast du ein ganz anderes Problem. Woran scheitert es?

                            Kommentar


                            • #15
                              Zitat von hellbringer Beitrag anzeigen

                              Wenn du kein Handbuch lesen kannst, hast du ein ganz anderes Problem. Woran scheitert es?
                              ..weil wir hier im Anfänger-Forum sind...

                              Wenn es für dich so sonnenklar ist, wäre ich um einen Tipp froh, welcher mich auf die Lösung bringt.. Wenn's niemand beantworten kann - dann lasst es mich wissen und ich hake das Thema in diesem Forum ab.

                              Kommentar

                              Lädt...
                              X