Hilfe bei "If - elseif - else

Kalma

Erfahrenes Mitglied
Hallo,
ich habe ein Problem bei meiner if funktion...

Es soll ein Bewertungs-system sein.
Wenn es <=20 Punkte sind: 1 Stern
Wenn es <=50 Punkte sind: 2 Sterne
Wenn es <=80 Punkte sind: 3 Sterne
Wenn es <=110 Punkte sind: 4 Sterne
else: 5 Sterne

Aber, ich habs mit verschiedenen Punkten ausprobiert... Immer kam nur 1 Stern :(

So sieht mein Script aus:
PHP:
<?php
if ($news->bewertung <=20)
{
echo " <img src=\"http://www.tutorials.de/forum/images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
}
elseif ($news->bewertung <= 50)
{
echo " <img src=\"http://www.tutorials.de/forum/images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
echo " <img src=\"http://www.tutorials.de/forum/images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
}
elseif ($news->bewertung <= 80)
{
echo " <img src=\"http://www.tutorials.de/forum/images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
echo " <img src=\"http://www.tutorials.de/forum/images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
echo " <img src=\"http://www.tutorials.de/forum/images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
}
elseif ($news->bewertung <= 110)
{
echo " <img src=\"http://www.tutorials.de/forum/images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
echo " <img src=\"http://www.tutorials.de/forum/images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
echo " <img src=\"http://www.tutorials.de/forum/images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
echo " <img src=\"http://www.tutorials.de/forum/images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
}
else
{
echo " <img src=\"http://www.tutorials.de/forum/images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
echo " <img src=\"http://www.tutorials.de/forum/images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
echo " <img src=\"http://www.tutorials.de/forum/images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
echo " <img src=\"http://www.tutorials.de/forum/images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
echo " <img src=\"http://www.tutorials.de/forum/images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
}
?>

Ich hoffe ihr könnt mir wieder mal helfen ;)

David
 
Zuletzt bearbeitet:
Es waere ja schon wenn Du auch eine konkrete Problembeschreibung verfassen koenntest.
Wie hast Du getestet, was erwartest Du, was kam heraus?

Mach mal aus elseif zwei Worte.

Nachtrag: Du kannst uebrigens mit einer kurzen Reihe von IFs (ganz ohne else) das ganze kuerzer halten.
PHP:
echo '<img src="http://www.tutorials.de/forum/images/bewertungsstern.gif" width="10" height="10" />';
if ($news->bewertung>20)
{
 echo '<img src="http://www.tutorials.de/forum/images/bewertungsstern.gif" width="10" height="10" />';
}
if ($news->bewertung>50)
{
 echo '<img src="http://www.tutorials.de/forum/images/bewertungsstern.gif" width="10" height="10" />';
}
if ($news->bewertung>80)
{
 echo '<img src="http://www.tutorials.de/forum/images/bewertungsstern.gif" width="10" height="10" />';
}
if ($news->bewertung>110)
{
 echo '<img src="http://www.tutorials.de/forum/images/bewertungsstern.gif" width="10" height="10" />';
}
 
Hallo Nochmal:

Ich habe es jetzt folgender maßen getestet:
PHP:
<?php
if ($story->bewertung<=20)
{
echo " <img src=\"images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
}
if ($story->bewertung<50)
{
echo " <img src=\"images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
echo " <img src=\"images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
}
if ($story->bewertung<=80)
{
echo " <img src=\"images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
echo " <img src=\"images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
echo " <img src=\"images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
}
if ($story->bewertung<=110)
{
echo " <img src=\"images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
echo " <img src=\"images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
echo " <img src=\"images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
echo " <img src=\"images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
}
if ($story->bewertung<=150)
{
echo " <img src=\"images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
echo " <img src=\"images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
echo " <img src=\"images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
echo " <img src=\"images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
echo " <img src=\"images/bewertungsstern.gif\" width=\"10\" height=\"10\" /> ";
}
?>
|
in Zahlen: <?php echo " ".$story['bewertung']." "; ?> Punkte

So.: Er gibt immer nur einen Stern aus. Die Punkte in Zahlen jedoch einwandfrei....

D
 
Wie genau hast Du die Punkte ausgegeben? Innerhalb der Klasse oder ausserhalb?
Falls in der Klasse: Koennte es sein, dass die Variable $bewertung vielleicht private ist?

Nachtrag: Dein letzter Code ist nicht wirklich optimal, wuerde er funktionieren wuerdest Du bei einer Punktzahl <=20 15 Sterne sehen.
 
Wie meinst du das jetzt genau?

Ich habe inner Datenbank eine Spalte "bewertung", die wird mit zahlen gefüllt...
 
Ach Du holst die einzelnen Datensaetze mit mysql_fetch_object()? Ach so.
Dann kannst Du vergessen was ich grad gesagt hab.
 
Ehm...
ne, nich mit mysql_fetch_object();
mit mysql_fetch_array();

aber ich kanns ma mit mysql_fetch_object(); versuchen(!) :)

Aber dann kommt eine Fehlermeldung

David
 
Also wenn Du mit mysql_fetch_array() arbeitest, dann bezieht sich $story->bewertung also wohl doch auf eine Klasse, richtig?
Weil bei mysql_fetch_array() wuerde man das doch eher so ansprechen: $story['bewertung']
 
Zurück