Ankündigung

Einklappen
Keine Ankündigung bisher.

SQL Abfrage in Datei ausgeben

Einklappen

Google Responsive Ad

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

  • SQL Abfrage in Datei ausgeben

    Hallo miteinander,

    ich habe mir ein Kleien Code gebaut mit dem ich eine SQL Abfrage in eine CSV Datei ausgeben lassen kann.

    Das Klappt soweit auch schon recht gut mit einem kleinen Hacken nach dem ich die zum Downloade angeboten habe kann ich auf der Seite nicht weiter arbeiten :-( da ich den Befehl exit aufrufen muss.

    Meine Frage an euch, wie schaffe ich es meine Abfrage in eine Datei zum Downloade an zu bieten ohne das ich mein Script mit Exirt beenden muss?




    Warum ich Exit mit im Code habe, wenn ich das Exit weg lasse wird mir alles nachfolgende von der Seite auch mit in die zu Downloadende Datei geschrieben was ich nicht möchte.




    Das ist mein Code: (Aus Platzgründen habe ich die 40 zielen lange SQL Abfrage durch ... ersetzt)

    Code:
       if (isset($_POST['Aktive_Firma'])) {
            if ($_POST['Data'] >= "Niederlassung_Export" ) {
    
           $erg = $db->query("SELECT     ...WHERE 1") or die($db->error);                     
           if ($erg->num_rows >= 1) { $Export_DB_CSV = $erg->fetch_all(MYSQLI_ASSOC); } // $erg->num_rows
    
          if (isset($Export_DB_CSV)) {
    
             $Separator        = ";";
             $umschlossen      = '"';
             $Zeilenumbruch    = "\r\n";
             $i = 0;
             $filename = "tmp/alle_adressen_".time().".csv";
             $datei = fopen($filename,"a");
    
             foreach($Export_DB_CSV as $ausgabe) {
    
                if ($i == 0) {
                   foreach($ausgabe as $key=>$inhalt) {
                      $key =  iconv("UTF-8", "WINDOWS-1252", $key);
                      fwrite($datei, $umschlossen . $key . $umschlossen . $Separator);
                   } // $ausgabe as $key=>$inhalt
                   fwrite($datei, $Zeilenumbruch);
                   foreach($ausgabe as $key=>$inhalt) {
                   $inhalt =  iconv("UTF-8", "WINDOWS-1252", $inhalt);
                      fwrite($datei, $umschlossen . $inhalt . $umschlossen . $Separator);
                   }  // $ausgabe as $key=>$inhalt
                } else {
                   foreach($ausgabe as $key=>$inhalt) {
                      $inhalt =  iconv("UTF-8", "WINDOWS-1252", $inhalt);
                      fwrite($datei, $umschlossen . $inhalt . $umschlossen . $Separator);
                   } // $ausgabe as $key=>$inhalt
                }
                fwrite($datei, $Zeilenumbruch);
             $i = $i + 1;
             } // $Export_DB_CSV as $ausgabe
             fclose($datei);
          } // isset($Export_DB_CSV)
    
    header("Content-Type: application/octet-stream");
    header("Content-Disposition: attachment; filename=$filename");
    readfile( $filename ); // *downloadpopsup*      
     exit;
     echo "Das ist cool!";
    } // $_POST['Data'] >= "Niederlassung_Export" )
    } // isset($_POST['Aktive_Firma'])

    Wenn es eine Möglichkeit gibt würde ich mich freuen wenn Ihr mir helfen könntet


    gruß Mücke


  • #2
    Hi,
    Du kannst keine Resource zum Download und gleichzeitig zur HTML-Ausgabe anbieten. Generiere auf der HTML-Seite doch einen Downloadlink auf eine Extradatei, die den Download generiert.

    Gruß
    Ingo
    Ingo Webdesign

    Kommentar


    • #3
      Hi Ingo,

      wenn ich dich richtig verstanden habe meinst du das ich eine Extra HTML Seite Baue die ich Öffnen lasse in einem neuen TAB und mit der lasse ich die Datei ausgeben?
      so ist die eigentliche Seite immer noch Handlungsfähig und ich habe keine Probleme mehr.

      Hört sich nach einen Plan an.

      Kommentar

      Lädt...
      X