Hallo, aus diesem Forum habe ich ein Script übernommen um Daten aus einer SQL-Datenbank nach csv zu exportieren. Leider bekommen ich eine Fehlermeldung: Parse error: syntax error, unexpected '"' in /home/vhosts/5000170293/kcv-sb.de/htdocs/besucher/kcv-choere-excel-sa6.php on line xxx.
Mein Code ist folgender:
<?php
/* * Created on 11.12.2009 by Nico Schubert */ /* * Der Host von ihrer MySQL Datenbank */ $db_host = 'xxxx'; /* * Username des MySQL Benutzers */ $db_user = 'xxxx'; /* * Das Passwort des MySQL Benutzers */ $db_passwort = 'xxxx'; /* * Name der Datenbank */ $db_datenbank = 'xxxx'; /* * Tabellennamen, die abgefragt werden soll */ $db_tabelle = 'xxxx'; /* * Deklaration von benutzten Variablen */ $ausgabe = ''; $suche = array('"', ';'); $ersetzen = array("'", " "); /* * Aufbau der MySQL Verbindung */ $link = @mysql_connect($db_host, $db_user, $db_passwort); if (!$link) { die('Es konnte keine Verbindung hergestellt werden zur MySQL Datenbank. MySQL Fehler: ' . mysql_error()); } $db_selected = @mysql_select_db($db_datenbank, $link); if (!$db_selected) { die ('Es konnte die Tabelle: '.$db_tabelle.' ausgewählt werden! MySQL Fehler: ' . mysql_error()); } /* * Abfrage zusammenstellen von der Tabelle. In unserem Fall verwenden wir ein Stern, damit alle Felder ausgegeben werden. Anschließend wird die Abfrage in der Variable $sql_select gespeichert. */ $sql_select = "SELECT 'verein', 'v_nachname', 'v_vorname', 'v_strassenr', 'v_plz', 'v_ort', 'gruppe' FROM '.$db_tabelle.' WHERE gruppe='SB'"; /* * Mit den PHP Befehl mysql_query() stellen wir unserer Abfrage an die Tabelle. */ $query = @mysql_query($sql_select) or die('Mysql Fehler:'.mysql_error()); /** * Mit dem Befehl mysql_num_rows() ermitteln wir die Anzahl der betroffenen Datensätze, anschließend prüfen wir mit einer IF-Anweisung ob die Anzahl der betroffenen Datensätze größer als Null ist. */ if (@mysql_num_rows($query) != 0) { /** * Wenn wir Datensätze in unserem Abfrage haben, führen wir eine while Schleife aus und speichern ein Array in der Variable $daten */ while ($daten = mysql_fetch_assoc($query)) { /** * Nun prüfen wir die Variable $daten ob in dieser ein Array enthalten ist. */ if (is_array($daten) == true) { /** * Wenn in der Variable $daten ein Array enthalten ist laufen wir mit einer so genannten foreach Schleife das Array durch. */ foreach ($daten as $key => $value) { /** * Nun speichern wir in der Variable $ausgabe unsere gefundenen Spalten. Bevor wir die Daten entsprechend unserer Zeichenkette anhängen, prüfen wir die Daten ob in diesen Felder " oder ; enthalten ist und ersetzen die mit der PHP Funktion str_replace() */ $ausgabe .= """.str_replace($suche, $ersetzen, $daten[$key])."";"; } } /** * Wenn ein neuer Datensatz abgearbeitet wird, speichern wir in der Variable $ausgabe einen Zeilenumbruch */ $ausgabe .= " "; } } else { /** * Sollten wir keine Datensätze finden, speichern der in der Variable $ausgabe eine Ausgabe, dass keine Datensätze gefunden wurden. */ $ausgabe .= "Es sind keine Daten in der Tabelle: ".$db_tabelle." vorhanden!"; } /** * Mit der PHP Funktion headers_sent() prüfen wir ob, eine Ausgabe an den Browser bereits gesendet wurde. */ if (headers_sent() == false) { /** * Wenn noch keine Ausgabe an den Browser gesendet wurde, geben wir als Dateityp text/csv ein mit den PHP Befehl header() */ header("Content-type: text/csv"); /** * Expires greifen wir auf den Cache vom Browser zu und definieren das Ablaufdatum der Datei. */ header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT'); /** * Mit Content-Disposition: attachment; filename=download.csv definieren wir einen vordefinierten Dateinamen, der zum Download angeboten wird */ header('Content-Disposition: attachment; filename=download.csv'); /** * Zusätzlich übergeben wir mit Pragma: no-cache den Browser, dass er die Dateien nicht in den Cache speichern soll. */ header('Pragma: no-cache'); } /** * Nun geben wir unsere gespeicherte Variable $ausgabe mit den Echobefehl aus. */ echo $ausgabe;
?>
Der Fehler liegt laut Meldung in diesem Bereich:
<?php
$ausgabe .= """.str_replace($suche, $ersetzen, $daten[$key])."";"; ?>
Ich möchte ganz einfach nur per Click auf einen Button die selectierten Daten in eine csv-Datei ausgeben. Wie stelle ich das an? Den Zugang zur Datenbank herstellen und die Daten selektieren bekomme ich hin. Die Daten sind auf der Webseite sichtbar. Wie sieht der Code mit diesem Button aus? An diesem Problem sitze ich nun seit Tagen und suche die Foren rauf und runter, bis ich auf dieses Script hier gestoßen bin. Kann mir bitte jemand ein wenig unter die Arme greifen. ernades |