Ankündigung

Einklappen
Keine Ankündigung bisher.

Tabelle zu Groß für CVS-Export?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Tabelle zu Groß für CVS-Export?

    Hallo!
    ICh habe ein Script, um eine MySQL-Tabelle in eine CVS-Datei zu exportieren. Bei kleinen Tabellen klaptts ohne Probleme. Nun ist meine Tabelle auf 197 Zeilen angstiegen und ich bekomme nur noch eine leere CVS-Datei. Danke für evtl. Tipps!
    PHP-Code:
    <?php 



    /*****************************************
    *     GENERATES A DOWNLOADABLE .csv or .xls FILE OF A MYSQL DATABASE
    *     ONLY NEED TO CHANGE A FEW SETTINGS
    *     1. THE FILE PREFIX $default_file_type (for the downloaded file's name)
    *     2. THE DEFAULT TYPE OF FILE $default_file_type (USE: csv OR xls )
    *         or you can set it in the url with file_type=xxx
    *         eg [url]http://yoursite/mysql2csv?file_type=csv[/url]
    *     3. THE DATABASE CONNECTION SETTINGS
    *     4. THE SQL SELECT STATEMENT $sql
    *     5. $show_type="yes"; WILL SHOW THE DB FIELD TYPE NEXT TO THE FIELD NAME IN THE FIRST ROW
    *****************************************/
    $file_prefix "";
    $default_file_type "csv";
    // enter here your database settings
     
    $host="localhost";
    $user="root";
    $pw="";
    $database="tbsumfrage";
    // default-query
    $sql    "SELECT * FROM daten";
    //show field type next to field name in the first row?
    $show_type "no";
    /****** NO NEED TO EDIT BELOW HERE ******/
    if($file_type!="csv"&&$file_type!="xls"){
            
    $file_type $default_file_type;
    }
    if(
    $file_type=="csv"){
            
    $field_seperator ",";
    }elseif(
    $file_type=="xls"){
            
    $field_seperator "\t";
    }else{
            echo 
    "\$default_file_type is set wrong. use \"csv\" or \"xls\"";
            exit;
    }
    $file_name=$file_prefix."_".date(Y)."-".date(m)."-".date(d).".".$file_type;
    header("Content-Disposition: attachment; filename=$file_name");
    header("Content-type: application/octetstream");
    header("Pragma: no-cache");
    header("Expires: 0");
    $db_link mysql_connect($host$user$pw);
    mysql_select_db($database$db_link);
    $result mysql_query($sql);
    $fieldcounts mysql_num_fields($result);
    for(
    $i 0$i $fieldcounts$i++) {
            
    $fieldtype mysql_fetch_field($result$i);
            if(
    $show_type!="yes"){
                    echo 
    "$fieldtype->name";
            }else{
                    echo 
    "$fieldtype->name [$fieldtype->type]";
            }
            if (
    $i < ($fieldcounts-1)){
                    echo 
    $field_seperator;
            }else{
                    echo 
    "\n";
            }
    }
    while (
    $myrow mysql_fetch_array($result)) {
            for(
    $i 0$i $fieldcounts$i++) {
                    
    $current_field $myrow[$i];
                    if(
    $file_type=="csv"){
                            
    $current_field str_replace(","" "$current_field);
                    }elseif(
    $file_type=="xls"){
                            
    $current_field str_replace("\t"" "$current_field);
                    }
                    if (
    $i < ($fieldcounts-1)){
                            echo 
    str_replace("\r\n"" "$current_field) . $field_seperator;
                    }else{
                            echo 
    str_replace("\r\n"" "$current_field) . "\n";
                    }
            }
    }
    ?>
    Gruß niesel

  • #2
    sehe kein «?» kann daher keine Frage erkennen.

    Kommentar


    • #3
      Re: Tabelle zu Groß für CVS-Export?

      Zitat von nieselfriem
      Nun ist meine Tabelle auf 197 Zeilen angstiegen und ich bekomme nur noch eine leere CVS-Datei.
      Also reden wir hier immer noch von einer kleinen Tabelle.

      Ich habe dieses Script angepasst und getestet, eine Tabelle mit 601640 Einträgen erzeugt problemlos eine 45 MB große Datei.

      Gruß
      phpfan

      Kommentar


      • #4
        ICh verstehs nicht. Bei mir regt sich nicht, wenn ich eine Tabelle mit 5 einträgen nehme kein Thema ! Gut dann habe ich noch ein Script, was die die Tabelle in eine Excel-Date exportiert. Wen ich die Datei in Excel importiere kein Prob jedoch Openoffice macht Probleme (viellecht falsche Forum) aber nie IDee!

        Kommentar

        Lädt...
        X