Download

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

  • Download

    Hallo,

    ich habe folgendes Problem:

    Ich habe eine Funktion, um CSVs auf Serverplatte zu schreiben. Dummerweise geht das nicht bei meinem neuen Provider.

    Wie kann ich das jetzt am Besten so machen, dass ich das ganze dynamisch auf den Client downloade? (also so wie oben)

    Kann mir jemand ein paar Zeilen Beispielcode geben, weil ich das oben schlcihtweg nciht verstehe (http Header&Co)?

    das ist meine bisherige Funktion:

    PHP-Code:
    //export von tabellen aus mysql nach csv
    //$tablename -> Quelltabelle in Gilde
    //$filename -> Zieldatei (csv mit " als Begrenzer)
    function exporttable($tablename$filename)
    {
        
    //0. Admininfo
        
    echo "<b>exporttable($tablename$filename)</b><br>";
        
    //1. Tabelle auslesen
        
    echo "Öffnen der Tabelle $tablename...";
        
    $query="select * from $tablename";
        if (
    $trace==TRUE) {echo "q: $query <br>";}
        
    $result=mysql_query($query) or die(mysql_error());
        
    $rows=mysql_num_rows($result);
        
    $cols=mysql_num_fields($result);
        if (
    $trace==TRUE) {echo "rows : $rows cols: $cols <br>";}
        echo 
    "...done.<br>";

        
    //2. Feldnamen feststellen
        
    echo "Feststellen der $cols Feldnamen...";
        for(
    $x=0;$x<$cols;$x++)
        {
             
    $fieldname[$x]=mysql_field_name($result,$x); //feldnamen merken!
        
    }
        echo 
    "...done.<br>";

        
    //3. String Datei anlegen
        
    echo "String Datei $filename anlegen...";
        
    $stringdatei fopen("$filename","w");
        echo 
    "...done.<br>";

        
    //4. Werte wegschreiben
        
    echo "$rows Datensätze schreiben";
        
    //4.1 zuerst Hearde
        
    $row=implode("\",\"",$fieldname);
        
    $row="\"".$row."\"\r\n";
        
    fwrite($stringdatei,$row);
        
        
    //4.2 Daten schreiben
        //Array nur als textholen, sonst ist alle doppelt!!!
        
    while ($row mysql_fetch_array($result,MYSQL_ASSOC)) //alle Zeilen
        
    {
            
    $row=implode("\",\"",$row);
            
    $row="\"".$row."\"\r\n";
            
    fwrite($stringdatei,$row);
            echo 
    ".";
        }
        echo 
    "done.<br>";

        
    //5. sTRING     Datei schliessen
        
    echo "String Datei beenden...";
        
    fclose($stringdatei);
        echo 
    "...done.<br>";
        
        return 
    TRUE;

    Die ganzen Fopen, Fwrite, FCLOSE Befehle funktionieren bei meinem neuen Provider nicht mehr.

    Gruß + Dank
    Gabriel

  • #2
    Download

    Kamm mir jemand sagen, wie ich ein CSV Download mache?
    Ich möchte das CSV dynamisch erzeugen und es ohne Zwischenspeichern downloaden können.

    Kommentar


    • #3
      Du erwartest ernsthaft innert 10 min eine Antwort ???? Das ist nicht nett

      Wenn das Speichern ned klappt. Dann setz allen Daten für die Datei in einen String, gibt mittels header() die korrekten Header für einen csv Download an und schickt dann den Inhalt von deinem String an den Client. Wenn du alles richtig gemacht hast, dann wird sich beim User ein Fenster öffnen und nach der Speicherposition der CSV Datei fragen.
      Zum Thema header() findest du garantiert was bei php.net

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar

      Lädt...
      X