Jungs ihr macht alle nen Denkfehler. Das Problem liegt nämlich in der Abfrage selbst. Diese umstellen ist also nicht wirklich die Lösung des Problems, nur eine unschöne Lösung. Der obige Code würde so funktionieren wenn man in der Bedingung alles korrekt macht:
Code: Alles auswählen
else if ( $exchange[$i]['stock_price'] = $exchange[$i]['stock_previous_price'] )
das = müsste korrekt == lauten in dieser Zeile. Ansonsten wird der Wert von stock_previous_price bei dem else if dem stock_price zugewiesen, die Funktion liefert "true" zurück und dieses Ergebnis ist folglich dann immer das was angezeigt wird wenn das erste nicht zutrifft.
Korrigiert wäre es also:
Code: Alles auswählen
else if ( $exchange[$i]['stock_price'] == $exchange[$i]['stock_previous_price'] )
An der Pörse ist das nicht anders
Pis morgen!
Greetz
der wandelnde PHP-Interpreter
PS:
bedingungen nach dem schema
funktionieren auch. Das else ist nicht zwingend erforderlich. Doch muss man hier an eine Fallback lösung denken wenn einer der genannten fälle nicht eintritt wird nämlich nicht auf einen Standardfall zurückgegriffen. Nur das macht das else. mit else if folgt noch eine Bedingung. Hier ist also die KLammer mit der bedingung erforderlich. Also
else if
{
...
}
funktioniert nicht als abschluss (da muss else hin)
else if ( $bla == $blubb )
{
...
}
funktioniert schon weil eben in der Klammer noch eine Bedingung vorhanden ist (das if also rechtfertigt)
Und immer dran denken
= ist eine Zuweisung
== ist ein Vergleich
ein $bla = $blubb in einer condition liefert immer TRUE zurück wenn die Zuweisung geklappt hat. Folgich wäre ein else if ( $blubb = $bla ) immer das Ergebnis der Prüfung. (Else in dem Fall nicht zu nutzen falls es an erster Stelle steht).