for-Schleife gibt nur letzteh Durchlauf aus

DrBonsai

Mitglied
Hallo,
folgende for-Schleife:
PHP:
for ($i = 1; $i<=12; $i++)
	{
	if ($i = 1) {$month = 'january';}
	if ($i = 2) {$month = 'february';}
	if ($i = 3) {$month = 'march';}
	if ($i = 4) {$month = 'april';}
	if ($i = 5) {$month = 'may';}
	if ($i = 6) {$month = 'june';}
	if ($i = 7) {$month = 'july';}
	if ($i = 8) {$month = 'august';}
	if ($i = 9) {$month = 'september';}
	if ($i = 10) {$month = 'october';}
	if ($i = 11) {$month = 'november';}
	if ($i = 12) {$month = 'december';}
	echo $month;
	$horizontal_radiation = "SELECT `radiation_".$month."` FROM `gc_local_climate` WHERE `local` = '$string_local'";
	$query_horizontal_radiation = mysql_query($horizontal_radiation);
	while ($horizontal_radiation_array = mysql_fetch_assoc($query_horizontal_radiation))
		{
		$string_horizontal_radiation = ($horizontal_radiation_array['radiation_'.$month]);
		}
	$array_horizontal_radiation[] = $string_horizontal_radiation;
	}
	for ($i = 1; $i<=12; $i++)
	{
	echo $array_horizontal_radiation[$i-1]."<br/>";
	}

gibt sowohl bei echo $month, als auch unten bei echo $array_horizontal_radiation[$i-1]."<br/>"; nur den Wert "december" bzw: 6700, was dem Wert für Dezember entspricht zurück.

Eigentlich sollten hier doch zwölf Werte ausgegeben werden, oder?

Wenn ichs "Manuell" mache, also in der Form: SQL_Abfrage für Januar, Wert ins Array schreiben, SGL-Abfrage für Februar..... dann haut es hin.
Aber man will und soll ja nicht unnötig viel Code produzieren.

Sieht jemand meinen Denkfehler im obigen Code?

mfg,
David
 
= ist zum werte zuordnen. == ist zum werte vergleichen.

PHP:
//falsch:
    if ($i = 1) {$month = 'january';}
//richtig
    if ($i == 1) $month = 'january';

Bei einzeiligen if() kannst du dir die {} sparen
 
Zurück