Rechnen, Anfänger frage grösser, kleiner oder gleich.

gixnetwork

Erfahrenes Mitglied
Hallo

ich möchte drei bilder anzeigen je nach dem ob die zahl X grösser, kleiner oder gleich ist.
Habe es geschaft aber leider ohne gleich bild. wen die zahlen X + Y gleich sind ist immer bild up eingeblendet.

Hätte jemand einen lösungsvorschlag? THX

PHP:
<!-- PHP Tendenz START -->   
<?php

$akt= '$SimpleXML_loaded_File->wswin->temp;';
$vor= '$SimpleXML_loaded_File->wswin->tempvor1h;';

if ($vor < $akt) {
    echo '<img src="gif/down.gif" alt="Tendenz" />';
} else {
    echo '<img src="gif/up.gif" alt="Tendenz" />';
}
?>
<!-- PHP Tendenz ENDE -->
 
Du brauchst noch einen Fall, momentan hast du "a größer b? ja => nein", du brauchst aber: "a größer b? ja => a gleich b ? ja => nein":

PHP:
<?php

$akt= '$SimpleXML_loaded_File->wswin->temp;';
$vor= '$SimpleXML_loaded_File->wswin->tempvor1h;';

if ($vor < $akt) {
    echo '<img src="gif/down.gif" alt="Tendenz" />';
} else if($vo == $akt) {
    echo '<img src="gif/equal.gif" alt="Tendenz" />';
} else {
    echo '<img src="gif/up.gif" alt="Tendenz" />';
}
?>
 
Aktuell vergleichst du zudem Strings.

Du willst vermutlich das hier:

PHP:
$akt = $SimpleXML_loaded_File->wswin->temp;
$vor = $SimpleXML_loaded_File->wswin->tempvor1h;
 
Danke, hatte es so versucht..

PHP:
<?php
$akt= '$SimpleXML_loaded_File->wswin->temp;';
$vor= '$SimpleXML_loaded_File->wswin->tempvor1h;';
if ($vor < $akt) {
    echo '<img src="gif/down.gif" alt="Tendenz" />';
} else if ($vor> $akt) {
    echo '<img src="gif/equal.gif" alt="Tendenz" />';
} else ($vor= $akt) {
    echo '<img src="gif/up.gif" alt="Tendenz" />';
}
?>

Besten Dank.


ps. $SimpleXML_loaded_File->wswin->temp; ist ein befehl um eine zahl aus einem xml file zu lesen.

PHP:
<!-- XML Verbinden START -->
<?php
$SimpleXML_loaded_File = simplexml_load_file("wswin/xml/wswin.xml");
?>
<!-- XML Verbinden ENDE -->
 
Nö, in deinem Code ist das ein String. Glaub es. :)

PHP:
var_dump($akt, $vor);
 
Zuletzt bearbeitet:
var_dump? (...... jeweiligen Werte eingerückt dargestellt. ) hmm, eingerückt dargestellt? :(

Also so funktionierts:
PHP:
<?php
$akt= '12.3';
$vor= '15.1';
if ($vor < $akt) {
    echo '<img src="gif/down.gif" alt="Tendenz" />';
} else if($vor == $akt) {
    echo '<img src="gif/gleich.gif" alt="Tendenz" />';
} else {
    echo '<img src="gif/up.gif" alt="Tendenz" />';
}
?>

So leider nicht
PHP:
<?php
$akt= '$SimpleXML_loaded_File->wswin->windchill;';
$vor= '$SimpleXML_loaded_File->wswin->windchillvor1h;';
if ($vor < $akt) {
    echo '<img src="gif/down.gif" alt="Tendenz" />';
} else if($vor == $akt) {
    echo '<img src="gif/gleich.gif" alt="Tendenz" />';
} else {
    echo '<img src="gif/up.gif" alt="Tendenz" />';
}
?>

Aus diesem xml kommen die werte:
http://gixnetwork.lima-city.de/wswin/xml/wswin.xml

Sonst klappt's bei jedem java script.

was mach ich denn falsch?
 
mermshaus hat recht, deine Werte $vor und $akt sind Zeichenketten, da du Single-Quotes verwendest. Eigentlich brauchst du da gar keine Zeichenketten, sondern Gleitkomma-Werte. Versuch es mal so:

PHP:
$akt= doubleval($SimpleXML_loaded_File->wswin->windchill);
$vor= doubleval($SimpleXML_loaded_File->wswin->windchillvor1h);
if ($vor < $akt) {
    echo '<img src="gif/down.gif" alt="Tendenz" />';
} else if($vor == $akt) {
    echo '<img src="gif/gleich.gif" alt="Tendenz" />';
} else {
    echo '<img src="gif/up.gif" alt="Tendenz" />';
}
 
"Eigentlich brauchst du da gar keine Zeichenketten, sondern Gleitkomma-Werte." Das verstehe ich leider nicht

, und leider funktioniert es so nicht. Allso keine fehlermeldung, aber immer gif/up.gif!

http://gixnetwork.lima-city.de/ (2. Pfeil bei Taupunkt müsste aktuell nach untenzeigen ( /down.gif) $akt=4.9 $vor=7.2)

PHP:
<?php
$vor= do_dump($SimpleXML_loaded_File->wswin->tau);
$vor= do_dump($SimpleXML_loaded_File->wswin->tauvor1h);
if ($vor < $akt) {
    echo '<img src="gif/down.gif" alt="Tendenz" />';
} else if($vor == $akt) {
    echo '<img src="gif/gleich.gif" alt="Tendenz" />';
} else {
    echo '<img src="gif/up.gif" alt="Tendenz" />';
}
?>

, und leider funktioniert es so nicht. Allso keine fehlermeldung, aber immer gif/up.gif!
 
PHP:
$akt= doubleval($SimpleXML_loaded_File->wswin->windchill);
$vor= doubleval($SimpleXML_loaded_File->wswin->windchillvor1h);
if ($vor < $akt) {
    echo '<img src="gif/up.gif" alt="Tendenz" />';
} else if($vor == $akt) {
    echo '<img src="gif/gleich.gif" alt="Tendenz" />';
} else {
    echo '<img src="gif/down.gif" alt="Tendenz" />';
}


SORRY ALLES OKEY .

Das Bild up.gif mit down.gif ausgetauscht.

Hab den Wald vor lauter bäumen nicht gesehen. Danke Saftmeister , Sie wahren wieder einmal eine grosse hilfe.

Natürlich gilt mein dank allen :rolleyes:
 
"Eigentlich brauchst du da gar keine Zeichenketten, sondern Gleitkomma-Werte." Das verstehe ich leider nicht

Noch mal zum Verständnis, du solltest dich jedoch mit den Grundlagen der Programmierung beschäftigen. Datentypen zu kennen ist das A&O.

- Zeichenkette (eng. String) ist ein Wert, der als Wort, Satz oder auch die Sonderzeichen daher kommt. Ein Beispiel für einen String: "Hallo gixnetwork" oder auch 'ABC123', beides sind Zeichenketten. Rechnen oder auch Vergleiche nach größer/kleiner-als ist mit Zeichenketten nicht möglich bzw. führen dazu, dass die Zeichenketten nach anderen Kriterien verglichen werden (siehe auch die Funktionen strcmp oder strnatcmp und dergleichen)

- Ganzzahlen (eng. Integer) sind ganze Zahlen wie 1, 2, 3, usw. Damit kann man Rechnen oder auch Kleiner-Größer-Vergleiche durchführen.

- Gleitkommazahlen (eng. Float oder mit doppelter Genauigkeit Double => mehr Stellen nach dem Komma) sind Zahlen wie 2.5 oder 3.14159. Auch damit kann man Rechnen oder Vergleiche durchführen.

- Weitere Typen: Array (assoziativ => Hashmap oder indiziert => Index als Zahl), boolsche Werte, Iteratoren, und weitere (mir fällt grad keiner mehr ein).

PHP versucht bei Rechenoperationen (arithmetischen Operationen mittels +, -, *, /, %, etc.) implizit die Umwandlung in einen Wert, mit dem es Rechnen kann, wenn es sich bei Variablen um den Datentyp String handelt. Wenn in der Zeichenkette jedoch keine oder zusätzlich zu Zahlen auch andere Werte (Buchstaben, Sonderzeichen außer dem Punkt) vorkommen, kann der Wert nicht ohne Informationsverlust umgewandelt werden.

In deinem Beispiel waren jedoch gar keine Zahlen in der Zeichenkette sondern nur die Werte '$SimpleXML_loaded_File->wswin->windchill' bzw. '$SimpleXML_loaded_File->wswin->windchillvor1h' und dabei handelt es sich auf jeden Fall um Werte, die nicht in Zahlen umgewandelt werden können.

Teste doch mal diesen Code:

PHP:
<?php
$a = '1.234';
$b = 'Abc';

$zahl1 = doubleval($a);
$zahl2 = doubleval($b);

echo "Zahl 1 ist ";
var_dump($zahl1);

echo "Zahl 2 ist ";
var_dump($zahl2);
 

Neue Beiträge

Zurück