DiamondDog: Prozentwert richtig anzeigen?

Hallo Leute,
ich hab ein kleines Problem und zwar würde ich gerne Spiele bewerten lassen.
Das Problem ist erst mal, ich weiß nicht genau wie ich das machen sollte, entweder 2 Radio Button einen für gut und einen für schlecht? Oder Punkte von 1 - 10? Ich habs jetzt erst mal versucht mit Punkten von 1 - 10 das Problem was ich dabei habe ist nachher den Prozent Wert Bild mäßig anzuzeigen.
Ich würde gerne einen Balken nehmen 300 px breit und auf diesem dann den Prozentwert anzeigen lassen nur da haperts einwenig bei mir. Wie setze ich das am besten um?

Den Prozentwert errechne ich so (hoffe das ist richtig ^^):

  
  
<?php  
echo "Stimmen:&nbsp;".$row['stimmen']."<br>";  
  
if(($row['punkte'] > 0) and ($row['stimmen'] > 0))  
  $prozent = (100/$row['punkte'])*$row['stimmen'];  
else  
  $prozent = 0;  
  
echo "Prozent:&nbsp;".round($prozent)."%<br>";  
?>

Danke schon mal für eure Hilfe.

Mfg Dog

  1. ... das Problem was ich dabei habe ist nachher den Prozent Wert Bild mäßig anzuzeigen.
    Ich würde gerne einen Balken nehmen 300 px breit und auf diesem dann den Prozentwert anzeigen lassen nur da haperts einwenig bei mir. Wie setze ich das am besten um?

    Was heißt das genau? Was für ein Bild/Balken soll das sein? Soll das/der etwas darstellen oder soll nur den Prozentwert, sprich die Zahl darin angezeigt werden?

    Man könnte ein Bild (mit Farbverlauf?!) erzeugen (ein mal) und dann in Abhängigkeit des Prozentwertes nur einen Ausschnitt davon anzeigen. Den Prozentwert könnte man als Zahl in HTML darstellen. Dann bräuchte man kein Bild dynamisch erzeugen und auch keine 100 oder mehr Bilder.

    1. Was heißt das genau? Was für ein Bild/Balken soll das sein? Soll das/der etwas darstellen oder soll nur den Prozentwert, sprich die Zahl darin angezeigt werden?

      Ich hatte mir jetzt überleget man könnte ja einen Balken in Rot grün nehmen (farberlauf) und auf diesem mit einem Pfeil anzeigen ob das Game mehr gut oder mehr im schlechten Bereich liegt.

      Man könnte ein Bild (mit Farbverlauf?!) erzeugen (ein mal) und dann in Abhängigkeit des Prozentwertes nur einen Ausschnitt davon anzeigen. Den Prozentwert könnte man als Zahl in HTML darstellen. Dann bräuchte man kein Bild dynamisch erzeugen und auch keine 100 oder mehr Bilder.

      Ok aber wie mache ich das das das Bild dann nur zu und so viel angezeigt werden würde?
      Die Prozentzahl so anzuzeigen ist ja an sich kein Problem, nur dieses auf das Bild zu übertragen ;)

      1. Ok aber wie mache ich das das das Bild dann nur zu und so viel angezeigt werden würde?

        Z.B. mit overflow:hidden oder clip:rect.

        1. Ok aber wie mache ich das das das Bild dann nur zu und so viel angezeigt werden würde?

          Z.B. mit overflow:hidden oder clip:rect.

          Ich habs jetzt mal so versucht:

            
          <div style="border:solid; border-color:#000; border-width:1px; width:100px; height:13px;">  
          <table width="100px" height="13px" border="0" cellspacing="0" cellpadding="0">  
            <tr>  
              <td align="center" nowrap="nowrap" background="games/vote_bg.jpg" height="13px" style="background-repeat:no-repeat;">  
                <img src="games/leer.gif" border="0" height="10" width="<?php echo $prozent_good; ?>px"/>  
                <img src="games/pfeil.gif" border="0" height="10" width="10px"/>  
                <img src="games/leer.gif" border="0" height="10" width="<?php echo $prozent_bad; ?>px"/>  
              </td>  
            </tr>  
          </table>  
          </div>  
          
          

          Wobei hier das Problem ist das die Tabelle die Bilder nicht wirklich begrenzt.
          Gibts da vll irgend eine Möglichkeit?
          Dann ist mir auch aufgefallen das zwichen den Bilder immer eine leerzeile zu seien scheint ich aber dort keine angefügt habe.

          1. Ich habe sowas schonmal als Anzeige für Nachlade-Status (AJAX) verwendet.
            Verwendet habe ich diese Grafik. (Etwas zu groß um sie direkt ins Forum zu binden.
            Erstellt/verwaltet habe ich das dann mit einer eigenen Klasse und Prototyping und hastenichgesehen also völlig unnütz für dein PHP-Anliegen.
            Das entstehende HTML (aus Bugzilla) sah dann so aus:

            <div style="  
             width: 100px;  
             height: 15px;  
             background-image: url(&quot;./gauge.png&quot;);  
             background-repeat: no-repeat;  
             background-color: rgb(136, 136, 136);  
             border-style: groove;  
             text-align: center;  
             vertical-align: middle;  
             font-size: small;  
             color: rgb(255, 255, 255);  
             background-position: 0px -985px;  
             position: fixed;  
             left: 350px;  
             top: 0px;  
             z-index: 100;  
            ">  
             100%  
            </div>
            

            -985px ist halt 100% alles recht leicht zu verrechnen, denn background-position ist einfach (ProStimmen/(ProStimmen+ContraStimmen)*Grafikhöhe*(-1).
            In meinem JS sah das dann so aus:
            Math.round(my_value/my_max*this.imgheight-this.height)+"px";
            Is klar 'ne?
            my_value ist der Absolute (nicht %) Wert, den das Ding annehmen soll
            my_max ist der Maximalwert, den das Ding annehmen kann
            imghight ist die Höhe der Grafik
            this.height ist die Höhe des DIV-Elements.

            (stammt btw. aus einem GM-Script, welches mich und andere beim Verwalten/Bearbeiten eines Typo3 unterstützt).

            --
            sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(
            1. So hab jetzt alles mal durchprobiert, aber alles konnte mir nicht so weiterhelfen wie ich es gerne gehabt häte, hab mich jetzt für die klisische Balken Methoede entschieden.

              Trozdme Danke an alle für eure Hilfe.

      2. Moin!

        Ok aber wie mache ich das das das Bild dann nur zu und so viel angezeigt werden würde?

        Das Bild als Hintergrund und entsprechen positionieren.

        Die Prozentzahl so anzuzeigen ist ja an sich kein Problem, nur dieses auf das Bild zu übertragen ;)

        Die Zahl kommt in das Element mit dem Hintergrundbild.

        --
        Vergesst Chuck Norris.
        Sponge Bob kann unter Wasser grillen!
  2. Hallo,

    ich hab ein kleines Problem und zwar würde ich gerne Spiele bewerten lassen.
    Das Problem ist erst mal, ich weiß nicht genau wie ich das machen sollte, entweder 2 Radio Button einen für gut und einen für schlecht?

    dann müsstest du dir noch ein Rechenschema überlegen, wie du daraus eine Summen- oder Durchschnittswertung generieren kannst; z.B. +1 Punkt für "gut" und -1 Punkt für "schlecht".

    Den Prozentwert errechne ich so (hoffe das ist richtig ^^):

    Den Prozentwert berechnest du, indem du die Summe der gegebenen Punkte durch die Maximalzahl der möglichen Punkte dividierst.

    $prozent = (100/$row['punkte'])*$row['stimmen'];

    Das kann nicht stimmen - wenn die tatsächliche Punktesumme im Nenner vorkommt, ist an der Berechnung was faul. Nach deiner Beschreibung (Wertung 0..10 Punkte) wäre das eher:

    $row['punkte'] / (10*$row['stimmen'])

    Das ergibt ein Ergebnis im Intervall [0..1]. Also die Gesamtzahl der wirklich gegebenen Punkte durch die Gesamtzahl der möglichen Punkte, das sind 10mal so viel wie Stimmen abgegeben wurden. Oder, wenn du gleich den etwas unpraktischen Wert von 0..100 haben willst, multipliziere die Formel mit 100 durch:

    10*$row['punkte'] / $row['stimmen']

    So long,
     Martin

    --
    Gültig sind Frauen ab 16, wohlgeformt ab 160 Pfund.
      (Gunnar Bittersmann)
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(