[PHP] Wert auslesen, vergleichen und Grafik ausgeben

Cejay1837

abgemeldet
6 Mai 2006
377
34
Ich sitz da jetzt schon seit ein paar Stunden vor, aber ich komm nicht weiter, mal zerschießt es mir die ganze Seite, mal lädt sie gar nicht mehr und mal wird mir alles angezeigt, was eben nicht angezeigt werden soll.
Also, ich habe ein Bewertungsrcipt gebastelt, jeder User kann einen anderen User bewerten, die Punktzahl (zwischen 0 und 5) der Bewertung wird dann in die DB geschrieben. Klappt bis dahin auch alles ganz super. Auf meinen Nickpages möchte ich nun den Durchschnitt ausgeben. Das habe ich jetzt so gelöst:

PHP:
<?
$durchschnitt = $ratings[ins_rat2]/$ratings[ins_rat];
?>
Das funktioniert soweit auch, er rechnet alle Werte zusammen und gibt mit dem Befehl <?$durchschnitt;?> auch den korrekten Durchschnitt zurück.

Nun würde ich aber gerne statt dem Durchschnitt eine Grafik ausgeben lassen.

Also meinetwegen so:
Wenn der Durchschnitt unter 1 ist, gib Bild X aus,
ist der Durchschnitt = 1, gib Bild Y aus,
ist der Durchschnitt unter 2, gib Bild Z aus, ...

Ich hab das jetzt so geschrieben:
PHP:
<?
if( $durchschnitt < 1 ) echo "<img src="Bild0">" ;
if( $durchschnitt = 1 ) echo "<img src="Bild1">" ;
if( $durchschnitt < 2 ) echo "<img src="Bild2">" ;
if( $durchschnitt = 2 ) echo "<img src="Bild3">" ;
if( $durchschnitt < 3 ) echo "<img src="Bild4">" ;
if( $durchschnitt = 3 ) echo "<img src="Bild5">" ;
if( $durchschnitt < 4 ) echo "<img src="Bild6">" ;
if( $durchschnitt = 4 ) echo "<img src="Bild7">" ;
if( $durchschnitt < 5 ) echo "<img src="Bild8">" ;
if( $durchschnitt = 5 ) echo "<img src="Bild9">" ;
?>

So, klappt aber nicht. Er gibt mir jetzt alle 9 Bilder gleichzeitig aus, dabei soll er mir doch nur das Bild ausgeben, dessen Wert auch zum Durchschnitt passt, also bei nem Durchschnitt von 1.5 sollte er Bild 2 ausgeben.
Ich hab in meiner Verzweiflung schon mit rand(); gearbeitet, aber das ist ja nun totaler Humburg.

Ist bestimmt was bei den if- Abfragen falsch gedacht, aber ich komm echt nicht drauf. Bin noch ein absoluter Neuling, wenn es um sowas geht.

Vielleicht hat jemand da mal ne Idee, wie man das regeln könnte? :oops:
Thx schonmal
 
probier mal else if
Code:
<?php
if( $durchschnitt < 1) { echo"<img src="Bild0">"; }
else if( $durchschnitt = 1 ) { echo "<img src="Bild1">"; }
else if( $durchschnitt < 2 ) { echo "<img src="Bild2">"; }
else if( $durchschnitt = 2 ) { echo "<img src="Bild3">"; }
else if( $durchschnitt < 3 ) { echo "<img src="Bild4">"; }
else if( $durchschnitt = 3 ) { echo "<img src="Bild5">"; }
else if( $durchschnitt < 4 ) { echo "<img src="Bild6">"; }
else if( $durchschnitt = 4 ) { echo "<img src="Bild7">"; }
else if( $durchschnitt < 5 ) { echo "<img src="Bild8">"; }
else if( $durchschnitt = 5 ) { echo "<img src="Bild9">"; }
?>


bzw.

Code:
<?
if( $durchschnitt < 1 ) { echo "<img src="Bild0">"; }
if( $durchschnitt = 1 ) { echo "<img src="Bild1">"; }
if( $durchschnitt < 2 ) { echo "<img src="Bild2">"; }
if( $durchschnitt = 2 ) { echo "<img src="Bild3">"; }
if( $durchschnitt < 3 ) { echo "<img src="Bild4">"; }
if( $durchschnitt = 3 ) { echo "<img src="Bild5">"; }
if( $durchschnitt < 4 ) { echo "<img src="Bild6">"; }
if( $durchschnitt = 4 ) { echo "<img src="Bild7">"; }
if( $durchschnitt < 5 ) { echo "<img src="Bild8">"; }
if( $durchschnitt = 5 ) { echo "<img src="Bild9">"; }
?>
 
Ok, jetzt hab ich das mal so gemacht (hatte ja scheinbar überall die '}' vergessen), aber das will er auch nicht. Die Seite ist jetzt total zerschossen. Das mit den Klammern erscheint mir logisch, dass die if- Abfragen auch wieder geschlossen werden müssen, aber kann ich den Durchschnitt einfach so mit <, >, = abgleichen? Sind doch eigentlich die richtigen Operatoren, oder kann das Problem da liegen?
 
Also das löst man heut zu tage leicht anderst.


if( $durchschnitt = 1 ) echo "<img src="Bild0">" ;

Das = ist eine Zuweisung somit ist dein IF() immer auf True! Das bedeutet die Bedingung ist gegeben und die Anweisung folgt.

if( $durchschnitt == 1 )

== ist dagegen ein Vergleichsoperator.

Aber mach dir mal das leben nicht so schwer, hau den Code raus und bau folgendes ein:

PHP:
$durchschnitt = round($ratings[ins_rat2]/$ratings[ins_rat],0);
$durchschnitt = $durchschnitt > 9 ? 9 : $durchschnitt;
echo '<img src="Bild'.$durchschnitt.'.jpg">';