Problem mit Array

scan5416

Mitglied
Hallo zusammen, habe wieder einmal ein Problem:

Ich habe in einem DB Feld einen Wert gespeichert:
Datenbank,emails,adresse='webmaster@xxx.ch',adresse

Dann habe ich folgende DB Abfrage:
PHP:
	$mysql_connect = mysql_connect($host, $user, $psw) or die("Die Verbindung zum Datenbankserver konnte nicht hergestellt werden");
	$mysql_select_db = @MYSQL_SELECT_DB($db) or die ("Verbindung zur Datenbank konnte nicht hergestellt werden");

$mysql_listen = mysql_query("SELECT * FROM maillisten WHERE aktiv = '1'") or die (mysql_error())	;
while($listen = mysql_fetch_array($mysql_listen)) {
	$empfaenger = explode(",",$listen['mitglieder']);
	
	//Überprüfen ob Datenbank benutzt wird
	$x = 0;
	foreach($empfaenger as $b) {
		if($b == "Datenbank") {
			echo "Es wird eine Datenbank benutzt<br />";
			$db = 1;
		}
		if($db == 1 && $x == 1) {
			$select = $b;
		}
		if($db == 1 && $x == 2) {
			$filter = $b;
		}
		if($db == 1 && $x == 3) {
			$feld = $b;
		}
		$x++;
	}
	//Wenn DB benutzt wird empfänger auslesen
	if($db == 1) {
		$sql_query = "SELECT * FROM ".$select." WHERE ".$filter."";
		$mysql_empfaenger = mysql_query($sql_query);
		while($result = mysql_fetch_array($mysql_empfaenger)) {
			$empfaenger = explode(",",$result[$feld]);
			
		}
                        foreach($empfaenger as $b) {
			echo $b;
		}
	}

Nur ist die Ausgabe leer! Wiso:confused::confused::confused:
Wo liegt der Fehler?
Wenn ich beim Befehl explode() die Variable $feld durch adresse ersetzte funktioniert es wunderbar.
Vielen Dank für eure Hifle!
 
Die Variable $feld wird nur an einer einzigen Stelle des Scripts gesetzt, und auch nur innerhalb der if-Abfrage. PHP hat einen eingeschränkten Scope, wenn du $feld in einer if-Abfrage erstmals definierst, ist die Variable auch nur innerhalb der if-Abfrage gültig. Definiere deine Variable $feld einfach am Anfang des Scripts z.B. mit null:

$feld = 0;

Grüße
 
Hallo

Ich weiss nicht wie du auf das kommst. Von dem habe ich erst bei funktionen und ändliches gehört. Und war leider auch nicht der Fehler.
Aber trozdem danke.
Es kann auch gar nicht an dem gelegen haben, weil wenn ich "echo $feld;" eingeben dann wird der Wert ausgegeben.
Und bei den Variablen $db und $select funktioniert es auch.
 
Hast du es schon mit error_reporting probiert? Ich kann auf den ersten Blick auch keine weiteren Fallstricke finden, außer das der Code grausig ist ^^.
 
Hi

Danke für euer Beiträge

Ich habe mals das error_reporting ausprobiert und folgende Meldung bekommen:
Notice: Undefined index: adresse in /home/verkehrs/public_html/new-hp/admin/spam_db.php on line 139
Das ist genau die Zeile an welcher
PHP:
$empfaenger = explode(",",$result[$feld]);
steht.

Und was hast du denn an meinem Code auszusetzen?:confused:
 
Zurück