Große mengen von Daten als CSV Datei

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

  • Große mengen von Daten als CSV Datei

    Hallo,
    folgendes Script habe ich geschrieben (Sie unten).
    Nun ist das Problem, dass der Server die Daten nicht alle verabeiten kann. Es kommt zum Timeout oder die Datenmenge ist überschritten.

    Gibt es da einen Trick, mit dem man Daten zwischenspeichern kann. Den Server kann ich natürlich umstellen, dass mehr Daten erlaubt sind, jedoch möchte ich noch eine andere Lösung suchen
    PHP-Code:
    <?php
    session_start
    ();
    include 
    '../../db/mysql.inc.php';
    include 
    '../../db/connect.php';

     
    if(isset(
    $_GET['act']) AND $_GET['act'] == "getcsv")
    {
    header('Content-Type: text/x-csv');
    header('Expires: ' gmdate('D, d M Y H:i:s') . ' GMT');
    header('Content-Disposition: attachment; filename=Produktkonfiguration.csv');
    header('Pragma: no-cache');

    $Spalte = Array();

    $ResultPointer mysql_query("SELECT
                   dateiname4customizer.name,
                   formular_concept4customizer.dateiname, 
                   
                   pulldownmenue,
                   feld_1,
                   feld_2,
                   feld_3,
                   feld_4,
                   feld_5,
                   feld_6,
                   feld_7,         
                   feld_8,
                   feld_9,
                   feld_10,
                   
                   feld_11,
                   feld_12,
                   feld_13,
                   feld_14,
                   feld_15,
                   feld_16,
                   feld_17,
                   feld_18,
                   feld_19,
                   feld_20,
                   
                   feld_21,
                   feld_22,
                   feld_23,
                   feld_24,
                   feld_25,
                   feld_26,
                   feld_27,
                   feld_28,
                   feld_29,
                   feld_30,
                   
                   feld_31,
                   feld_32,
                   feld_33,
                   feld_34,
                   feld_35,
                   feld_36,
                   feld_37,
                   feld_38,
                   feld_39,
                   feld_40,
                   feld_all,
                   aufpreis_feld_1,
                   aufpreis_feld_2,
                   aufpreis_feld_3,
                   aufpreis_feld_4,
                   aufpreis_feld_5,
                   aufpreis_feld_6,
                   aufpreis_feld_7,
                   aufpreis_feld_8,
                   aufpreis_feld_9,
                   aufpreis_feld_10,
                   
                    aufpreis_feld_11,
                   aufpreis_feld_12,
                   aufpreis_feld_13,
                   aufpreis_feld_14,
                   aufpreis_feld_15,
                   aufpreis_feld_16,
                   aufpreis_feld_17,
                   aufpreis_feld_18,
                   aufpreis_feld_19,
                   aufpreis_feld_20,
                   
                   aufpreis_feld_21,
                   aufpreis_feld_22,
                   aufpreis_feld_23,
                   aufpreis_feld_24,
                   aufpreis_feld_25,
                   aufpreis_feld_26,
                   aufpreis_feld_27,
                   aufpreis_feld_28,
                   aufpreis_feld_29,
                   aufpreis_feld_30,
                   
                   aufpreis_feld_31,
                   aufpreis_feld_32,
                   aufpreis_feld_33,
                   aufpreis_feld_34,
                   aufpreis_feld_35,
                   aufpreis_feld_36,
                   aufpreis_feld_37,
                   aufpreis_feld_38,
                   aufpreis_feld_39,
                   aufpreis_feld_40,
                   
                   pflicht_feld_2,
                   pflicht_feld_3,
                   pflicht_feld_4
                   
                   
               FROM
                   dateiname4customizer,
                   formular_concept4customizer
              WHERE
                   dateiname4customizer.dateiname = formular_concept4customizer.dateiname AND
                   dateiname4customizer.dateiname LIKE '"
    .$_GET['letter']."%'
           ORDER BY
                   formular_concept4customizer.folge ASC"
    ) OR die (mysql_error());
                   
    $Spalte[] = "Produktbezeichnung";
                   
    $Spalte[] = "Produktkennung (Ohne Sonderzeichen)";
                   
    $Spalte[] = "pulldownmenue";
                  
                   for(
    $i=1$i<41$i++)
                   {  
                   
    $Spalte[] = "feld_".$i."";
                   
    $Spalte[] = "aufpreis_feld_".$i."";            
                   }
                  
                   
    $Spalte[] = "PflichtOption Textfeld (Wert 0 od. 1)";
                   
    $Spalte[] = "PflichtOption Radiobutton (Wert 0 od. 1)";
                   
    $Spalte[] = "PflichtOption Pulldownmenue (Wert 0 od. 1)";
       
        
        for(
    $j 0$j count($Spalte); $j++)
        {
            
    $Export .= "" $Spalte[$j] . "";

            if(
    $j != count($Spalte)-1)
            {
                
    $Export .= ";";
            }
        }
        
    $Export .= "\r\n";
        
    $Spalte "";
       
    for(
    $i 0$Export .= ""$i mysql_num_rows($ResultPointer); $i++)
    {
         
    $Daten mysql_fetch_object($ResultPointer);
                   
    $Spalte[] = $Daten->dateiname;
                   
    $Spalte[] = $Daten->pulldownmenue;
                   if(
    $Daten->feld_all != "") {
                   
                   
    $feld_all_first_array explode("\n"$Daten->feld_all);
                   for(
    $k=1$k<=40$k++)
                   {
                    
    $l $k 1;
                    
    $feld_all_second_array explode(",",$feld_all_first_array[$l]);
                    
    $Spalte[] = trim($feld_all_second_array[0]);
                    
    $Spalte[] = trim(str_replace(",","."$feld_all_second_array[1])); 
                   }
                   } else { 
                  for(
    $i=1$i<41$i++)
                   {  
                   
    $Spalte[] = $Daten->feld_.$i;
                   
    $Spalte[] = $Daten->aufpreis_feld_.$i;            
                   }
                   }
                   
    $Spalte[] = $Daten->pflicht_feld_2;
                   
    $Spalte[] = $Daten->pflicht_feld_3;
                   
    $Spalte[] = $Daten->pflicht_feld_4;
        
        
        
     
      
        
        
       
        for(
    $j 0$j count($Spalte); $j++)
        {
            
    $Export .= "" $Spalte[$j] . "";

            if(
    $j != count($Spalte)-1)
            {
                
    $Export .= ";";
            }
        }
        
    $Export .= "\r\n";
        
    $Spalte "";
    }


    header('Content-Type: text/x-csv');
    header('Expires: ' gmdate('D, d M Y H:i:s') . ' GMT');
    header('Content-Disposition: attachment; filename=Produktkonfiguration.csv');
    header('Pragma: no-cache');
     
    echo 
    $Export;



    exit;
    }

    $buchstaben = Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <meta http-equiv="content-type" content="text/html; charset=windows-1250">
      <meta name="generator" content="PSPad editor, www.pspad.com">
      <title></title>
      </head>
      <body style="margin: 20px;">
    <?php
    echo "<div style=\"width: 100%; padding: 10px; margin: 10px;\">";
    for(
    $i=0$i<26$i++)
    echo 
    "&nbsp;&nbsp;<a href=\"export.php?act=list_items&letter=".strtolower($buchstaben[$i])."\">".$buchstaben[$i]."</a>&nbsp;&nbsp;";




    echo 
    "</div>";
    ?>
    Zuletzt geändert von sanktusm; 21.10.2011, 16:46.

  • #2
    Durchnummerierte Spalten sind ein Zeichen für ein fehlerhaftes Datenbankdesign. Das solltest du ändern.

    Kommentar


    • #3
      Wie könnte ich das Realisieren?

      Gib mir einen Tipp

      Kommentar


      • #4
        Normalisierung (Datenbank) ? Wikipedia

        Kommentar

        Lädt...
        X