[PHP] Löschen des Variableninhaltes nach deren Auswertung?

RonZ

Lt. Junior Grade
Dabei seit
Aug. 2005
Beiträge
260
Hallo, ich nochmal.
Ich definiere für eine Datenbankabfrage eine Variable.
Diese packe ich mit Hilfe von mysql_fetch_array(Variable,MYS...) in ein Array, welches ich direkt in einer while-Schleife auswerte.
Warum ist dieses Array nach der Auswertung nicht mehr definiert?
Beispiel:

PHP:
$select_anfrage = "SELECT pname FROM tblprojekte ORDER BY pname";
$select_query = mysql_query($select_anfrage,$conn);

	while($select_cells = mysql_fetch_array($select_query,MYSQL_ASSOC))
	{
    	echo "<option value='$select_cells[pname]'>$select_cells[pname]";
    }

Wenn ich jetz nochwas mit $select_cells vorhab, ist es nichtmehr existent, warum?

Danke!
 
Zitat von RonZ:
PHP:
$select_anfrage = "SELECT pname FROM tblprojekte ORDER BY pname";
$select_query = mysql_query($select_anfrage,$conn);

	while($select_cells = mysql_fetch_array($select_query,MYSQL_ASSOC))
	{
    	echo "<option value='$select_cells[pname]'>$select_cells[pname]";
    }

Wenn ich jetz nochwas mit $select_cells vorhab, ist es nichtmehr existent, warum?

Danke!
Weil die while-Schleife solange durchlaufen wird, bis der Ausdruck
PHP:
$select_cells = mysql_fetch_array($select_query,MYSQL_ASSOC)
zu false evaluiert, d.h. sobald mysql_fetch_array() false zurückliefert (und dieser Wert $select_cells zugewiesen wird), bricht die Schleife ab. Aus diesem Grund enhält $select_cells nach der Schleife auch nur false und nicht den letzten Datensatz, der ermittelt wurde.

greetings, Keita
 
Ah, verstehe.
Wieso ist eigentlich folgender Ausdruck nicht mgl.:
PHP:
while($select_cells = mysql_fetch_array(mysql_query("SELECT pname FROM tblprojekte ORDER BY pname",$conn),MYSQL_ASSOC))
	{
    	...
    }
 
Zitat von RonZ:
Ah, verstehe.
Wieso ist eigentlich folgender Ausdruck nicht mgl.:
PHP:
while($select_cells = mysql_fetch_array(mysql_query("SELECT pname FROM tblprojekte ORDER BY pname",$conn),MYSQL_ASSOC))
	{
    	...
    }
Weil die zu erfüllende Bedingung bei jedem Durchlauf evaluiert wird, d.h. bei jedem Durchlauf wird der ganze Salat $select_cells = mysql_fetch_array(...) ausgeführt, also auch mysql_query("SELECT pname FROM tblprojekte ORDER BY pname",$conn), was natürlich immer zu true evaluiert.

greetings, Keita
 
Zurück
Top