phpbar.de logo

Mailinglisten-Archive

AW: export von tables nach CSV / Excel

AW: export von tables nach CSV / Excel

Toph Kemmann mysql-de_(at)_lists.bttr.org
Mon, 10 Dec 2001 17:11:39 +0100


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