Daten aus MySQL in CSV-Datei exportieren
Dienstag, 19. September 2006
http://www.webmaster-resource.de/tricks/php/daten-aus-mysql-in-csv-datei-exportieren.php Möchten Sie Daten aus einer MySQL-Tabelle Ihren Benutzern zur Weiterverarbeitung in Excel zur Verfügung stellen, finden Sie hier ein entsprechendes Exportscript. Das folgende Beispielscript öffnet eine Verbindung zur Datenbank und liest alle Zeilen einer Tabelle aus. Anschließend werden diese so ausgegeben, dass sie problemlos in Microsoft Excel verwendet werden können. Quellcode
 
   1.
      <?php
   2.
       
   3.
      $DatabaseHost = "localhost";
   4.
      $DatabaseUser = "user";
   5.
      $DatabasePassword = "password";
   6.
      $Database = "mydatabase";
   7.
      $Table = "Tabelle";
   8.
       
   9.
      header('Content-Type: text/x-csv');
  10.
      header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
  11.
      header('Content-Disposition: attachment; filename=download.csv');
  12.
      header('Pragma: no-cache');
  13.
       
  14.
      $DatabasePointer = mysql_connect($DatabaseHost, $DatabaseUser, $DatabasePassword);
  15.
      mysql_select_db($Database, $DatabasePointer);
  16.
       
  17.
      $ResultPointer = mysql_query("SELECT Spalte1, Spalte2, Spalte3 FROM $Table");
  18.
       
  19.
      for($i = 0, $Export = ""; $i < mysql_num_rows($ResultPointer); $i++)
  20.
      {
  21.
          $Daten = mysql_fetch_object($ResultPointer);
  22.
       
  23.
          $Spalte[] = str_replace("\"", "\"\"", $Daten->Spalte1);
  24.
          $Spalte[] = str_replace("\"", "\"\"", $Daten->Spalte2);
  25.
          $Spalte[] = str_replace("\"", "\"\"", $Daten->Spalte3);
  26.
         
  27.
          for($j = 0; $j < count($Spalte); $j++)
  28.
          {
  29.
              $Export .= "\"" . $Spalte[$j] . "\"";
  30.
       
  31.
              if($j != count($Spalte)-1)
  32.
              {
  33.
                  $Export .= ";";
  34.
              }
  35.
          }
  36.
          $Export .= "\r\n";
  37.
          $Spalte = "";
  38.
      }
  39.
       
  40.
      echo$Export;
  41.
       
  42.
      ?>
Zunächst müssen Sie in den Zeilen 3-7 die Einstellungen entsprechend an Ihre MySQL-Datenbank anpassen. In Zeile 17 müssen Sie den SQL notieren, der die gewünschten Daten aus der Tabelle ausliest. Ab Zeile 23 müssen Sie so viele Zeilen notieren, wie Ihr Ergebnis Spalten aufweist und zudem statt "Spalte1" oder "Spalte2" den korrekten Namen der Spalte aus dem SQL notieren.