DerWaldgeist: mysql-db auslesen mit while und alle Werte in einer var speichen

Beitrag lesen

Hi,

puh, danke erst mal für die infos :-), offenbar ist mein code ja ganz schön unsauber - hab' mir php selber beigebracht per try and error, da schleichen sich solche sachen irgendwie immer ein.

Ich habe jetzt versucht mein Skript etwas zu verbessern.
Das deaktivieren der magic_quotes_gpc funktioniert leider nicht; ich habe versucht es per .htaccess (php_flag magic_quotes_gpc off) auszuschalten aber da kriege ich dann nur noch 500 Server Error. An die php.ini darf ich leider nicht ran. Momentan ist die Konfiguration folgend:
magic_quotes_gpc On On
magic_quotes_runtime Off Off
magic_quotes_sybase Off Off

Dennoch scheint das umgebaute Skript zu tun was es soll, ich lasse mir die Ergebnisse vorher einzeln anzeigen und das geht alles.

Nur: auch wenn ich die temp.php erst nach dem Ende der While schleife schreibe, kriege ich nur den zuletzt durchlaufenen Wert. Offenbar wird bei jedem durchlauf der while-Schleife der vorige Wert in der $ganznamen überschrieben, so dass man nur den letzten Wert erhält - eigentlich logisch.

Ich habe das Problem jetzt nur auf eine etwas umständlich-riskante Art lösen können indem ich einmal vor der while-Schleife den Anfang der temp.php schreibe, dann in der while-schleife die Daten einfüge und nach der while-Schleife das Ende der temp.php einfüge. Man schreibt dann bei 100 Personen also 102 mal in die Datei ... ob das wohl gut ist ???
Momentan also etwa so:

  
<?php  
  
// Fehlermeldungen  
error_reporting(E_ALL);  
ini_set('error_reporting', E_ALL);  
  
include "connect.php"; // die Verbindung zur Datenbank steht da drin  
  
$abfrage = sprintf("SELECT * FROM dbname WHERE land LIKE '%s'", mysql_real_escape_string($_POST['data']));  
  
$suche = mysql_query($abfrage);  
if (!$suche) {  
    die('Fehler 001 ' . mysql_error());  
 exit;  
}  
  
// ANFANG DER temp.php  
$start = "<?php \n\$namen = '";  
$fp0 = fopen("temp.php", 'w');  
fwrite($fp0, $start, strlen($start));  
fclose ($fp0);  
  
  
 while($sdata = mysql_fetch_object($suche))  
    {  
    $ergeb1 = $sdata3->vorname;  
    $ergeb2 = $sdata3->nachname;  
    $ergeb3 = $sdata3->land;  
  
/**** TEMP DATA EINTRAG --> temp_adr.php ****/  
$ganznamen = $ergeb1."&nbsp;".$ergeb2.",";  
$fpA = fopen("temp.php", 'a+b');  
fwrite($fpA, $ganznamen, strlen($ganznamen));  
fclose ($fpA);  
  
    } //ende while  
  
  
// ENDE der temp.php  
$inputB = "';\n ?>";  
$fpA2 = fopen("temp.php", 'a+b');  
fwrite($fpA2, $inputB, strlen($inputB));  
fclose ($fpA2);  
  
mysql_free_result($suche);  
  
?>  

Falls es da eine bessere Lösung gibt, wärs' super ... Danke ...