Mailinglisten-Archive |
Hello Christian,
CK> Hi Toph,
CK> Danke für Dein Script - wie kriege ich das jetzt zu dem User auf die
CK> Festplatte ?????
CK> Hast Du eine Lösung ?
Wenn du das php-script so aufrifst (link auf script), oder einfach die
endung zip angibst, anstatt csv:
header("Content-disposition: filename=filename.csv.zip");
wird der download automatisch gestartet, dann muss man es nur noch
umbenennen (z.b. cvs oder txt) und per drag and drop in excel
reinziehen ... fertig ! Meines Wissens kann man Zeilenumbrueche in
Excel (in Zellen) eh nicht richtig darstellen per import ... anyone ??
CK> 1) In einigen Felder sind die Eingaben (Artikelbeschreibungen) teilweise mit
CK> CR ("Enter") getrennt. Beim Export zerschiesst das so die ganze Datei - die
CK> lässt sich dann nicht mehr korrekt einlesen.
CK> Kann ich diese "sonderzeichen", die ja leider nicht sichtbar sind,
CK> eliminieren (replace "cr" mit " ")??
CK> Oder welche Lösung habt Ihr "in petto"??
Dein Problem mit den Zeilenumbruechen wird bei mir mit replace geloest,
siehe unten !!
CK> Betreff: Re: export von tables nach CSV / Excel
CK> Hello Christian,
CK>> ich suche einen vernünftigen Weg, 3 MySQL Tables nach CSV oder noch
CK> besser
CK>> Excel /Access zu exportieren. Dabei müssen die 3 Tabellen entsperchend
CK>> verknüpft werden und alle Daten sollen in die Datei geschrieben werden.
CK> Als
CK>> Bildschimdarstellung habe ich das, ich möchte das aber gleich in eine
CK> Datei
CK>> schreiben lassen (send).
CK> Ich mach das wie folgt.
CK> Wichtig hierbei die replace-anweisung unten, da es sonst probleme mit
CK> zeilenumbruechen in Excel gibt.
CK> ##############################################################
CK> <?
CK> $DB = mysql_connect('localhost', 'username', '******');
CK> mysql_select_db('datenbank', $DB);
CK> $table= "tabellenname";
CK> $go = date("dmY");
CK> header("Content-Type: application/csv-tab-delimited-table");
CK> header("Content-disposition: filename=userliste".$go".csv");
CK> // Start Sonderzeichen als erste Zeile
CK> echo "#";
CK> if (!isset($order)) $order = "user_id";
CK> $sql2 = "select * from tabelle ";
CK> $result2 = mysql_query($sql2);
CK> $number = mysql_num_rows($result2);
CK> // Komma-spariert?
CK> if ($sep=="comma") $sep_char=",";
CK> else if ($sep=="semicolon") $sep_char=";";
CK> else if ($sep=="colon") $sep_char=":";
CK> // Wenn nicht, dann TAB-separiert
CK> //else $sep_char="\t";
CK> else $sep_char="\t";
CK> $sql = "select * from $table ";
CK> $result = mysql_query($sql);
CK> $fields = mysql_num_fields($result);
CK> // fuer alle -^
CK> ////////////////////////////////////////////////////////////////////////////
CK> ///
CK> // Die Feldnamen auslesen: _
CK> // \/
CK> $i="1";
CK> while ($i < $fields)
CK> {
CK> $name = mysql_field_name($result,$i);
CK> echo $name;
CK> if ($i < $fields-1) echo $sep_char;
CK> else echo "\n";
CK> $i++;
CK> }
CK> ////////////////////////////////////////////////////////////////////////////
CK> //
CK> // Werte auslesen als liste
CK> $query = "select * from $table ";
CK> if (isset($where)) $query.= "where $where ";
CK> $query.="order by $order";
CK> $werte_result = mysql_query ($query);
------------> ZEILENUMBRUECHE BEHEBEN !!
CK> while ($row = mysql_fetch_array($werte_result))
CK> {
CK> $j =1;
CK> while ($j < $fields)
CK> {
CK> $text_ = str_replace ("\r", "", "$row[$j]");
CK> $text_ = str_replace ("\n", "", "$text_");
CK> echo $text_;
CK> if ($j < $fields-1) echo $sep_char;
CK> else echo "\r\n";
CK> $j++;
CK> }
CK> }
CK> echo "\n";
CK> ##############################################################
--
Best regards,
Toph mailto:php_(at)_kemweb.de
---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive