Kjorni: Meckern und Verbessern erlaubt

Beitrag lesen

Hi,

nachdem ich keine wirklich vernünftige Lösung gefunden habe, Daten von mysql in Excel oder andere tabellenkalkulationen zu bekommen, habe ich mich selber an eine lösung gemacht.

Und dazu ist Meckern und Verbessern gerne erlaubt, denn ich bin sicher, dass man das performanter hin bekommt.

So gefällt mir z.b. das häufige Öffnen und Schließen der Datei gar nicht. Das hätte ich schon lieber erst in ein Array verpackt und danach in die Datei geschrieben.

Was ist sonst noch so alles verbesserungsfähig bzw. -würdig?

Gruß, Kjorni

  
<?php  
  
$user="root";  
$pass="";  
$server="localhost";  
$name="dbname";  
  
  
$db=mysql_connect($server,$user,$pass);  
mysql_select_db($name,$db);  
  
$schritt = 100;  
$dateiname = "00000.txt";  
  
$gesamt_anzahl = $_REQUEST['gesamt_anzahl'];  
$field = $_REQUEST['field'];  
  
  
if (!isset($_REQUEST['von'])) {  
$von=0;  
} else {  
$von=$_REQUEST['von'];  
}  
  
$bis = $von+$schritt;  
  
  
//========================================  
// Allgemeines  
//========================================  
$query_count="SELECT * from table WHERE ID < 1000";  
$query=$query_count;  
  
if (!isset($gesamt_anzahl)) {  
$result_count=mysql_query($query_count);  
if ($result_count==FALSE) {  
die(mysql_error());  
}  
$gesamt_anzahl=mysql_num_rows($result_count);  
  
  
$field = mysql_num_fields( $result_count );  
   for ( $i = 0; $i < $field; $i++ ) {  
     $names[] = mysql_field_name( $result_count, $i );  
   }  
  
$ueberschrift = implode ("|", $names);  
$ueberschrift="$ueberschrift\r\n";  
  
$fp=fopen($dateiname,'a');  
fwrite($fp,$ueberschrift);  
fclose($fp);  
  
} // end if  
  
//========================================  
// MySQL - Abfrage  
//========================================  
$query.=" LIMIT ".$von.",".$bis."";  
  
$result=mysql_query($query);  
if ($result==FALSE) {  
die(mysql_error());  
}  
  
//========================================  
// In Datei schreiben  
//========================================  
  
while ($row=mysql_fetch_row($result)) {  
  
$zeile = implode ("|", $row);  
$zeile="$zeile\r\n";  
  
  
$fp=fopen($dateiname,'a');  
fwrite($fp,$zeile);  
fclose($fp);  
} // end while  
  
  
  
//========================================  
// Script beenden  
//========================================  
  
if ($von+$schritt > $gesamt_anzahl) {  
	echo ("<BR><BR>Daten in Datei wurde durchgeführt");  
exit;  
} else {  
	echo ("<BR><BR>Datensatz $von bis $bis");  
}  
  
  
//========================================  
// Seite selber aufrufen mit Parametern  
//========================================  
echo ("<meta http-equiv='refresh' content='4;URL=".$PHP_SELF."?von=$bis&amp;gesamt_anzahl=$gesamt_anzahl&amp;field=$field'>");  
  
?>