Bewertungsabfrage If

pwehrmann

Mitglied
Hallo, ich hab eine Bewertungsanzeige, welche die Punktzahl ausliest und ein entsprechendes Bild anzeigt:

CODE
if ($linkratingsummary == 1.0) {
echo "<img src=\"modules/$module_name/ratings/bad-webspace.jpg\"><br>";
}
if ($linkratingsummary == 1.5) {
echo "<img src=\"modules/$module_name/ratings/bad-webspace.jpg\"><br>";
}
if ($linkratingsummary == 2.0) {
echo "<img src=\"modules/$module_name/ratings/bad-webspace.jpg\"><br>";
}
if ($linkratingsummary == 2.5) {
echo "<img src=\"modules/$module_name/ratings/bad-webspace.jpg\"><br>";
}
if ($linkratingsummary == 3.0) {
echo "<img src=\"modules/$module_name/ratings/bad-webspace.jpg\"><br>";
}
if ($linkratingsummary == 3.5) {
echo "<img src=\"modules/$module_name/ratings/bad-webspace.jpg\"><br>";
}
if ($linkratingsummary == 4.0) {
echo "<img src=\"modules/$module_name/ratings/middle-webspace.jpg\"><br>";
}
if ($linkratingsummary == 4.5) {
echo "<img src=\"modules/$module_name/ratings/middle-webspace.jpg\"><br>";
}
if ($linkratingsummary == 5.0) {
echo "<img src=\"modules/$module_name/ratings/middle-webspace.jpg\"><br>";
}
if ($linkratingsummary == 5.5) {
echo "<img src=\"modules/$module_name/ratings/middle-webspace.jpg\"><br>";
}
if ($linkratingsummary == 6.0) {
echo "<img src=\"modules/$module_name/ratings/middle-webspace.jpg\"><br>";
}
if ($linkratingsummary == 6.5) {
echo "<img src=\"modules/$module_name/ratings/middle-webspace.jpg\"><br>";
}
if ($linkratingsummary == 7.0) {
echo "<img src=\"modules/$module_name/ratings/top-webspace.jpg\"><br>";
}
if ($linkratingsummary == 7.5) {
echo "<img src=\"modules/$module_name/ratings/top-webspace.jpg\"><br>";
}
if ($linkratingsummary == 8.0) {
echo "<img src=\"modules/$module_name/ratings/top-webspace.jpg\"><br>";
}
if ($linkratingsummary == 8.5) {
echo "<img src=\"modules/$module_name/ratings/top-webspace.jpg\"><br>";
}
if ($linkratingsummary == 9.0) {
echo "<img src=\"modules/$module_name/ratings/top-webspace.jpg\"><br>";
}
if ($linkratingsummary == 9.5) {
echo "<img src=\"modules/$module_name/ratings/top-webspace.jpg\"><br>";
}
if ($linkratingsummary == 10.0) {
echo "<img src=\"modules/$module_name/ratings/top-webspace.jpg\"><br></center>";
}



Ich hab leider null Ahnung von PHP, bin schon stolz das ich das hinbekommen hab nach Tagen.
Weiss jemand wie ich das eleganter verpacke? Es sollte auch nicht nach 1, 1.5, 2, 2.5-Schritten gehen, da auch eine Bewertung von Bsp. 1,7 rauskommen kann. In dem Falle wird natürlich wieder gar kein Bild angezeigt.
 
QUOTE

if ($linkratingsummary < 4.0)
{
echo "<img src=\"modules/$module_name/ratings/bad-webspace.jpg\"><br>";
}
else
{
if ($linkratingsummary < 7.0)
{
echo "<img src=\"modules/$module_name/ratings/middle-webspace.jpg\"><br>";
}
else
{
echo "<img src=\"modules/$module_name/ratings/top-webspace.jpg\"><br>";
}
}




So wird zuerst geprüft ob die Variable kleiner als vier ist.
Ist dem so wird das schlechte Bild angezeigt.
Ist dem nicht so wird geprüft ob die Variable kleiner als sieben ist. Ist dem so muss sie ja grösser als vier und kleiner als sieben sein, daher wird das mittlere Bild angezeigt.
Trifft beides nicht zu muss der Wert ja über sieben liegen und das gute Bild wird angezeigt.
smile.gif
 
Dankeschön, klappt wunderbar. Jetzt weiss ich auch wie man das verschachtelt.
Hab das immer irgendwie mit elseif versucht...
 
CODE
echo '<img src="modules/' . $module_name . '/ratings/'
. ( ($linkratingsummary<4) ? 'bad' : ( ($linkratingsummary<7) ? 'middle' : 'top') )
. '-webspace.jpg"><br>';

 
Hm, die Codes klappen zwar, nur taucht jetzt das Problem auf, das wenn noch keine Bewertung abgegeben wurde, auch das schlechte Bild auftaucht. Am besten wär es natürlich wenn dann stattdessen "Noch unbewertet" stehen würde. Sonst denken die Anwender gleich "Oh der ist schlecht. Ginge das?

Hier sehr gut zu sehen...
 
CODE if (!empty($linkratingsummary))
echo '<img src="modules/' . $module_name . '/ratings/'
. ( ($linkratingsummary<4) ? 'bad' : ( ($linkratingsummary<7) ? 'middle' : 'top') )
. '-webspace.jpg"><br>';


aber nur für den Fall dass "keine Bewertung" bedeutet das $linkratingsummary leer,nicht gesetzt oder 0 ist...
 
Maik, sorry, das klappt bei mir gar nicht, nutze auch PHPNuke, vielleicht liegts daran. Kannst du nicht den oberen Code entsprechend modifizieren. Der klappt nämlich...

Wär dir dankbar
 
hab's nicht getestet, aber da war ein Punkt zuviel... hab's geändert, so müsste es gehen.
 
Ja, jetzt funktioniert dein Code, aber ist dasselbe Ergebnis wie mein alter.
Ich bräuchte das so, das wenn noch keine Bewertung abgegeben wurde, also die Variable auf 0 oder/und 0.0 ist, ein Text ausgegeben wird, der den Inhalt "Noch nicht bewertet" hat.

Aber sonst klappt dein Code genauso gut wie die obrigen, hab ich sogar nen paar Bytes mit gespart. Könntest du das auch noch so hinbiegen wie ich das bräuchte? Wär echt verdammt cool....

Also so, das statt dem schlechtestem Bild einfach die Anzeige "Noch nicht bewertet" angezeigt wird. Oben kannst du dir ja den Link zur besagten Seite angucken. Kann dir auch noch mehr Code schicken wenn du ihn brauchst....
 
CODE if (!empty($linkratingsummary))
echo '<img src="modules/' . $module_name . '/ratings/'
. ( ($linkratingsummary<4) ? 'bad' : ( ($linkratingsummary<7) ? 'middle' : 'top') )
. '-webspace.jpg"><br>';
else
echo 'Noch nicht bewertet';
 
Zurück
Oben