| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

21-10-2011, 16:35
|
|
sanktusm
Registrierter Benutzer
|
|
Registriert seit: Aug 2005
Beiträge: 558
|
|
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 " <a href=\"export.php?act=list_items&letter=".strtolower($buchstaben[$i])."\">".$buchstaben[$i]."</a> ";
echo "</div>"; ?>
Geändert von sanktusm (21-10-2011 um 16:46 Uhr)
|

21-10-2011, 16:36
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Durchnummerierte Spalten sind ein Zeichen für ein fehlerhaftes Datenbankdesign. Das solltest du ändern.
|

21-10-2011, 16:48
|
|
sanktusm
Registrierter Benutzer
|
|
Registriert seit: Aug 2005
Beiträge: 558
|
|
Wie könnte ich das Realisieren?
Gib mir einen Tipp
|

21-10-2011, 16:51
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|