PHP Script soll Export in Datei Speichern

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
gnude
Beiträge: 1569
Registriert: 14.09.2009 22:05:28
Kontaktdaten:

PHP Script soll Export in Datei Speichern

Beitrag von gnude » 30.09.2011 11:00:51

Hallo
ich möchte gern eined Datenbank Exportieren in eine .csv Datei.
Dazu habe ich folgendes Script gefunden:
http://www.tutorial5.com/content/view/159/85/
Aber wenn ich das starte ruft er jedesmal einen Dialog auf um die Datei lokal zu speichern.
Ich hätte aber lieber, das die Datei direkt auf dem Server abgelegt wird,
ohne weitere Nachfrage.

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: PHP Script soll Export in Datei Speichern

Beitrag von syssi » 30.09.2011 15:14:38

Auf dem Server in einer Shell:

Code: Alles auswählen

wget -q -O output.csv http://domain/exportscript.php

Benutzeravatar
gnude
Beiträge: 1569
Registriert: 14.09.2009 22:05:28
Kontaktdaten:

Re: PHP Script soll Export in Datei Speichern

Beitrag von gnude » 04.10.2011 09:38:17

Hallo
ich habe ein Script dank :google: gefunden,
welches fast genau das macht was ich benötige.
Es schreibt die Daten in eine Datei auf dem Server, die ich per ftp abzapfen kann.
Einzigstes Problem:
Die Datei hat kein Zeilenende, sondern praktisch nur eine Zeile. Es müsste also nach jeder Zeile ein Zeilenende rein.
Weiss jemand woran das liegt?
Hier das Script:

Code: Alles auswählen

<?php
// Datenbankeinstellungen
    $id = "dbbenutzer";
    $pw = "dbkennwort";
    $host = "localhost";
    $database = "dbname";
    $table = "tabellenname";
// Einstellungen Ende

// Verbindung zum Server
$conn_id = @mysql_connect($host,$id,$pw) or die("Datenbank-Fehler");
mysql_select_db($database,$conn_id); // Auswahl einer Datenbank

echo "<HTML><BODY>Das Backup der Tabelle <I>$table</I> wird gestartet...<P>";

$start= time(); flush();
settype($site,"integer"); if($site<0) $site=0;
$datei = $table.".csv";
if(!$site) {
  $sql = "SELECT COUNT(*) FROM $table";
  $all = mysql_result(mysql_query($sql),0);
  @unlink($datei);

}
// Selektiert alle Einträge aus der DB
$sql = "SELECT * FROM $table";
$result = mysql_query($sql) or die(mysql_error());

$fp = fopen($datei,"a+"); // Öffnet eine Datei
while($row = mysql_fetch_row($result)) {
  fwrite($fp,implode($row,";")."n"); // Schreibt Zeilen
 }
fclose($fp); // Schliesst eine Datei

// Ausgabe der Kommentare
$zeit = time() - $start;
$groesse = filesize($datei) / 1024;
echo "Das Backup wurde erfolgreich durchgeführt.<BR>
      Der Inhalt befindet sich in der Datei <I>$datei</I><BR>
      Gesamtdauer: ".date("i:s",$zeit).
     " min.<BR>Die Datei ist <I>".
      number_format($groesse,2).
     "</I> KB groß.<BR>";
echo "</BODY></HTML>";
?>

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Re: PHP Script soll Export in Datei Speichern

Beitrag von nepos » 04.10.2011 09:44:35

Denke, diese Zeile ist falsch:

Code: Alles auswählen

  fwrite($fp,implode($row,";")."n"); // Schreibt Zeilen
Da sollte wohl eher das hier stehen:

Code: Alles auswählen

  fwrite($fp,implode($row,";")."\n"); // Schreibt Zeilen
Damit wird ans Zeilenende kein 'n' sondern ein Zeilenumbruch angehaengt.


Antworten