zahl(prozent) formatieren...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • zahl(prozent) formatieren...

    Hi,

    ich hab gerade mein voting script fertig funktioniert alles perfekt jetzt scheiter ich irgendwie nur daran das ich hinter der Ausgabe(sind balken die sich prozentual den Stimmen anpassen...) noch die prozent ausgeben lassen will jetzt gibt er mir natürlich zB: 33.66666667% aus
    jetzt will ich die ausgabe halt auf 2Kommastellen danach formatieren also:
    33.66%
    ich weiss ist bestimmt verdammt leicht und steht 100% auch im Handbuch...
    anscheinend bin ich aber echt zu doof ;-) sorry hab echt 15min rumgesucht.
    Please Help me !
    Grüße Tom

    hier noch der Code der von Bedeutung ist:
    PHP-Code:
    <?php
    $result 
    mysql_query("select * from $tbl where id = 1");
    $row=mysql_fetch_object($result);
    // anzahl der Kategorien
    $anzahl_felder mysql_num_fields($result) - 1;

    $schlecht     $row->schlecht;
    $geht_so     $row->geht_so;
    $ganz_ok     $row->ganz_ok;
    $gut     $row->gut;
    $super      $row->super;

    // Formel für Prozentbrechnung :-P
    $balken1 $schlecht $gesamt_query 100;
    $balken2 $geht_so $gesamt_query 100;
    $balken3 $ganz_ok $gesamt_query 100;
    $balken4 $gut $gesamt_query 100;
    $balken5 $super $gesamt_query 100;
     
    echo 
    "<b>Stimmen gesamt:</b> $gesamt_query<br>";
    ?>
    <table border="1" bordercolor="#000000" cellspacing="0" width="300"> 
    <tr>
    <td bgcolor="#A8C5FF" colspan="3"><b>Umfrageergebnisse:</b></td>
    </tr>
    <tr>
    <td>schlecht</td>
    <td><?php echo $schlecht?><img src="line.gif" width="<?php echo $balken1;?>%" height="13"></td>
    <td><?php echo "$balken1%";?></td>
    </tr>
    <tr>
    <td>geht so</td>
    <td><?php echo $geht_so?><img src="line.gif" width="<?php echo $balken2;?>%" height="13"></td>
    <td><?php echo "$balken2%";?></td>
    </tr>
    <tr>
    <td>ganz ok</td>
    <td><?php echo $ganz_ok?><img src="line.gif" width="<?php echo $balken3;?>%" height="13"></td>
    <td><?php echo "$balken3%";?></td>
    </tr>
    <tr>
    <td>gut</td>
    <td><?php echo $gut?><img src="line.gif" width="<?php echo $balken4;?>%" height="13"></td>
    <td><?php echo "$balken4%";?></td>
    </tr>
    <tr>
    <td>super</td>
    <td><?php echo $super?><img src="line.gif" width="<?php echo $balken5;?>%" height="13"></td>
    <td><?php echo "$balken5%";?></td>
    </tr>
    </table>

  • #2
    PHP-Code:
    // Antworten auslesen
    $res mysql_query("SELECT * FROM u_auswahl WHERE un=$un ORDER BY id ASC");
    while(
    $num mysql_fetch_array($res))
        {

        
    // Auslesen wieviel für die einzelnen Antworten gestimmt haben
        
    $res3 mysql_query("SELECT count(*) as row FROM u_replies WHERE auswahl=$num[id] ORDER BY auswahl");
        
    // Stimmenanzahl pro Stimme
        
    $an mysql_result($res3,0);

        
    // Abfangen der Division durch null
        
    if($an == 0)
            {
            
    $Prozent 0;
            
    $an 0;
            }
        else
            {
            
    $Prozent = (100/$anz)*$an;
            }
        
    // Prozent auf zwei Stellen anzeigen
        
    $Prozent sprintf("%01.2f"$Prozent);

        echo 
    "Für \"&nbsp;$num[auswahl]&nbsp;\" haben sich $an Teilnehmer entschieden,<br>\n
            macht 
    $Prozent% ";

        
    // Anzeige der Grafik
        
    $pro $Prozent 2;
        echo 
    "<img src='images/l_bar.gif' height='12'><img src='images/m_bar.gif' width='$pro%' height='12'><img src='images/r_bar.gif' height='12'><br>\n";

        } 
    *winks*
    Gilbert
    ------------------------------------------------
    Hilfe für eine Vielzahl von Problemen!!!
    http://www.1st-rootserver.de/

    Kommentar


    • #3
      Das hier sollte dir weiterhelfen.

      PHP-Code:
      $zahl 15.23752;
      $formatZahl number_format($zahl2','' ');
      echo 
      "<b>formatZahl :".$formatZahl." %</b><br>"
      Andreas
      ....... .:[s|Y|n]:. . .:[www.syntheme.de]:. . .:[:-)]:. .......

      Kommentar


      • #4
        Danke Euch beiden, aber denke ich nehm "syn" seine Lösung is kürzer ;-) und genau das was ich gesucht hab....
        aber trotzdem Danke Wotan hast mir einen neuen Denkansatz gegeben ich denk nämlich das mein voting script ein wenig kompliziert ist bzw umständlich programmiert ist nur ich hab mir eben nicht anders zu helfen gewusst wegen der radio buttons weil mit javascript wollte ich das nicht das verhindert wird das mehr als ein radio button ausgewählt werden darf.
        Deswegen hab ich das mit php abgedeckt mehr oder weniger sinnvoll ;-).
        könnt euch das script ja mal angucken :
        PHP-Code:
        <?php
        $tbl      
        "voting";
        $DBHost   "localhost";
        $DBName   "news";
        $DBUser   "root";
        $DBPasswd "";

        // Verbindug zu DB-Server herstellen
        @mysql_connect($DBHost$DBUser$DBPasswd
             OR die(
        "Konnte DB-Server nicht erreichen");
        mysql_select_db($DBName);
        ?>

        <hmtl>
        <head>
        </head>
        <body>

        <?php
        $result 
        mysql_query("select * from $tbl where id = 1");
        $row=mysql_fetch_object($result);
        // anzahl der Kategorien
        $anzahl_felder mysql_num_fields($result) - 1;

        $schlecht     $row->schlecht;
        $geht_so     $row->geht_so;
        $ganz_ok     $row->ganz_ok;
        $gut         $row->gut;
        $super         $row->super;

        $host=gethostbyaddr($REMOTE_ADDR);

        //hier werden alle stimmen zusammen gezählt und für jede Kategorie eine Stimme abgezogen
        //weil der Anfangswert jeder Spalte immer 1 sein muss um die Überprüfung "V1" durchführen zu können
        $gesamt_query $schlecht $geht_so $ganz_ok $gut $super $anzahl_felder;

        //wenn auf "vote" gedrückt dann
        If($voting){
        $DatenOK 0;

        //Überprüfung "V1" wenn radio Button gedrückt, dann variable $zahl + eins zählen und zu Ursprungswert
        //addieren. Der query für die updatefunktion wird in der Variable $spalte wiedergegeben
        IF($schlecht_form)    { $zahl++; $form1 $schlecht_form $zahl;     $DatenOK 1;    $spalte "schlecht = '$form1'"; }
        IF(
        $geht_so_form)    { $zahl++; $form2 $geht_so_form $zahl;     $DatenOK 1;    $spalte "geht_so = '$form2'"; }
        IF(
        $ganz_ok_form)    { $zahl++; $form3 $ganz_ok_form $zahl;     $DatenOK 1;    $spalte "ganz_ok = '$form3'"; }
        IF(
        $gut_form)        { $zahl++; $form4 $gut_form $zahl;         $DatenOK 1;    $spalte "gut = '$form4'"; }
        IF(
        $super_form)        { $zahl++; $form5 $super_form $zahl;     $DatenOK 1;    $spalte "super = '$form5'"; }

        //dürfte sich selbst durch die Fehlermeldung erklären
        IF(!$zahl){ $DatenOK 0$fehler_leer "Sorry du musst ein Feld auswählen!<br>"; }
        IF(
        $zahl>1){ $DatenOK 0$fehler_kategorie =  "Sorry du kannst nur für eine Kategorie stimmen!<br>"; }

        //wenn alles in Ordnung war Datenbank updaten
        IF($DatenOK){
        mysql_query("update $tbl set $spalte where id = '1'");
            echo 
        mysql_error();
            
        $stimme_ok "<b>Deine Stimme wurde gezählt!</b><br>";
            echo 
        "<meta http-equiv=\"refresh\" content=\"1; URL=voting.php\">\n";
                }        
            }
        ?>
        <table border="1" bordercolor="#000000" cellspacing="0" width="300">
        <form action="<?php echo $PHP_SELF?>" method="POST">
        <tr>
        <td bgcolor="#A8C5FF" colspan="2"><b>Wie findet ihr meine Homepage?</b></td>
        </tr>
        <tr>
        <td>schlecht</td>
        <td><input type="radio" value="<?php echo $schlecht?>" name="schlecht_form"></td>
        </tr>
        <tr>
        <td>geht so</td>
        <td><input type="radio" value="<?php echo $geht_so?>" name="geht_so_form"></td>
        </tr>
        <tr>
        <td>ganz ok</td>
        <td><input type="radio" value="<?php echo $ganz_ok?>" name="ganz_ok_form"></td>
        </tr>
        <tr>
        <td>gut</td>
        <td><input type="radio" value="<?php echo $gut?>" name="gut_form"></td>
        </tr>
        <tr>
        <td>super</td>
        <td><input type="radio" value="<?php echo $super?>" name="super_form"></td>
        </tr>
        <tr>
        <td colspan="2"><input type="submit" value="vote" name="voting"><input type="reset" value="Reset" name="reset"></td>
        </tr>
        </form>
        </table><br>
        <?php

        // Formel für Prozentbrechnung :-P
        $balken1 $schlecht     $gesamt_query 100;
        $balken2 $geht_so         $gesamt_query 100;
        $balken3 $ganz_ok         $gesamt_query 100;
        $balken4 $gut             $gesamt_query 100;
        $balken5 $super         $gesamt_query 100;

        //formatiert die Prozetnausgabe
        $format1 number_format($balken12','' ');
        $format2 number_format($balken22','' ');
        $format3 number_format($balken32','' ');
        $format4 number_format($balken42','' ');
        $format5 number_format($balken52','' ');


        echo 
        "<b>Stimmen gesamt:</b> $gesamt_query<br>";
        ?>
        <table border="1" bordercolor="#000000" cellspacing="0" width="300"> 
        <tr>
        <td bgcolor="#A8C5FF" colspan="3"><b>Umfrageergebnisse:</b></td>
        </tr>
        <tr>
        <td>schlecht</td>
        <td><?php echo $schlecht?><img src="line.gif" width="<?php echo $balken1;?>%" height="13"></td>
        <td><?php echo "".$format1."%";?></td>
        </tr>
        <tr>
        <td>geht so</td>
        <td><?php echo $geht_so?><img src="line.gif" width="<?php echo $balken2;?>%" height="13"></td>
        <td><?php echo "".$format2."%";?></td>
        </tr>
        <tr>
        <td>ganz ok</td>
        <td><?php echo $ganz_ok?><img src="line.gif" width="<?php echo $balken3;?>%" height="13"></td>
        <td><?php echo "".$format3."%";?></td>
        </tr>
        <tr>
        <td>gut</td>
        <td><?php echo $gut?><img src="line.gif" width="<?php echo $balken4;?>%" height="13"></td>
        <td><?php echo "".$format4."%";?></td>
        </tr>
        <tr>
        <td>super</td>
        <td><?php echo $super?><img src="line.gif" width="<?php echo $balken5;?>%" height="13"></td>
        <td><?php echo "".$format5."%";?></td>
        </tr>
        </table>
        <?php
        //Ausgabe der Fehlermeldungen oder der Bestätigung
        echo "<br><b>$fehler_leer $fehler_kategorie $stimme_ok</b>";
        ?>
        </body>
        </html>

        Kommentar


        • #5
          Gut deins besteht nur aus einer Datei.

          Meins läuft mit einem Admin-Center wo die Vote eingestellt werden können.

          Das Vote selber geht über zwei Dateien.

          Ist aber so ausgelegt das mehrere Vote gleichzeitig laufen können.
          *winks*
          Gilbert
          ------------------------------------------------
          Hilfe für eine Vielzahl von Problemen!!!
          http://www.1st-rootserver.de/

          Kommentar


          • #6
            so also jetzt funktionierts richtig auch wenn am Anfang noch niemand gevotet hat, weil bei dem vorherigem waren ja noch die Anfangswerte mit in der Berechnung ( bei jeder Kategorie Anfangswert "1" also insgesamt 5Stimmen zuviel) so geht´s jetzt:
            Find mein Script allerdings trotzdem ziemlich umständlich *g*...
            mal schaun ob ich das mit einem adminbreich kombinieren kann und
            dann nix mehr am Quellcode ändern muss...naja die nächste Aufgabe wartet also schon auf mich :-P!
            PHP-Code:
            <?php
            $tbl      
            "voting";
            $DBHost   "localhost";
            $DBName   "news";
            $DBUser   "root";
            $DBPasswd "";

            // Verbindug zu DB-Server herstellen
            @mysql_connect($DBHost$DBUser$DBPasswd
                 OR die(
            "Konnte DB-Server nicht erreichen");
            mysql_select_db($DBName);
            ?>

            <hmtl>
            <head>
            </head>
            <body>

            <?php
            $result 
            mysql_query("select * from $tbl where id = 1");
            $row=mysql_fetch_object($result);
            // anzahl der Kategorien
            $anzahl_felder mysql_num_fields($result) - 1;

            $schlecht     $row->schlecht;
            $geht_so     $row->geht_so;
            $ganz_ok     $row->ganz_ok;
            $gut         $row->gut;
            $super         $row->super;

            $host=gethostbyaddr($REMOTE_ADDR);

            //hier werden alle stimmen zusammen gezählt und für jede Kategorie eine Stimme abgezogen
            //weil der Anfangswert jeder Spalte immer 1 sein muss um die Überprüfung "V1" durchführen zu können
            $gesamt_query $schlecht $geht_so $ganz_ok $gut $super $anzahl_felder;

            //wenn auf "vote" gedrückt dann
            If($voting){
            $DatenOK 0;

            //Überprüfung "V1" wenn radio Button gedrückt, dann variable $zahl + eins zählen und zu Ursprungswert
            //addieren. Der query für die updatefunktion wird in der Variable $spalte wiedergegeben
            IF($schlecht_form)    { $zahl++; $form1 $schlecht_form $zahl;     $DatenOK 1;    $spalte "schlecht = '$form1'"; }
            IF(
            $geht_so_form)    { $zahl++; $form2 $geht_so_form $zahl;     $DatenOK 1;    $spalte "geht_so = '$form2'"; }
            IF(
            $ganz_ok_form)    { $zahl++; $form3 $ganz_ok_form $zahl;     $DatenOK 1;    $spalte "ganz_ok = '$form3'"; }
            IF(
            $gut_form)        { $zahl++; $form4 $gut_form $zahl;         $DatenOK 1;    $spalte "gut = '$form4'"; }
            IF(
            $super_form)        { $zahl++; $form5 $super_form $zahl;     $DatenOK 1;    $spalte "super = '$form5'"; }

            //dürfte sich selbst durch die Fehlermeldung erklären
            IF(!$zahl){ $DatenOK 0$fehler_leer "Sorry du musst ein Feld auswählen!<br>"; }
            IF(
            $zahl>1){ $DatenOK 0$fehler_kategorie =  "Sorry du kannst nur für eine Kategorie stimmen!<br>"; }

            //wenn alles in Ordnung war Datenbank updaten
            IF($DatenOK){
            mysql_query("update $tbl set $spalte where id = '1'");
                echo 
            mysql_error();
                
            $stimme_ok "<b>Deine Stimme wurde gezählt!</b><br>";
                echo 
            "<meta http-equiv=\"refresh\" content=\"1; URL=voting.php\">\n";
                    }        
                }
            ?>
            <table border="1" bordercolor="#000000" cellspacing="0" width="300">
            <form action="<?php echo $PHP_SELF?>" method="POST">
            <tr>
            <td bgcolor="#A8C5FF" colspan="2"><b>Wie findet ihr meine Homepage?</b></td>
            </tr>
            <tr>
            <td>schlecht</td>
            <td><input type="radio" value="<?php echo $schlecht?>" name="schlecht_form"></td>
            </tr>
            <tr>
            <td>geht so</td>
            <td><input type="radio" value="<?php echo $geht_so?>" name="geht_so_form"></td>
            </tr>
            <tr>
            <td>ganz ok</td>
            <td><input type="radio" value="<?php echo $ganz_ok?>" name="ganz_ok_form"></td>
            </tr>
            <tr>
            <td>gut</td>
            <td><input type="radio" value="<?php echo $gut?>" name="gut_form"></td>
            </tr>
            <tr>
            <td>super</td>
            <td><input type="radio" value="<?php echo $super?>" name="super_form"></td>
            </tr>
            <tr>
            <td colspan="2"><input type="submit" value="vote" name="voting"><input type="reset" value="Reset" name="reset"></td>
            </tr>
            </form>
            </table><br>
            <?php

            //subtrahiert den Anfangswert der kategorien wieder(-1) damit die Berechnung stimmt
            $balken_1 $schlecht-1;
            $balken_2 $geht_so-1;
            $balken_3 $ganz_ok-1;
            $balken_4 $gut-1;
            $balken_5 $super-1;

            // Formel für Prozentbrechnung :-P
            IF($schlecht>1){ $balken1 $balken_1     $gesamt_query 100; }
            IF(
            $geht_so>1){ $balken2 $balken_2         $gesamt_query 100; }
            IF(
            $ganz_ok>1){ $balken3 $balken_3         $gesamt_query 100; }
            IF(
            $gut>1)      { $balken4 $balken_4             $gesamt_query 100; }
            IF(
            $super>1)  { $balken5 $balken_5         $gesamt_query 100; }

            //formatiert die Prozetnausgabe
            $format1 number_format($balken12','' ');
            $format2 number_format($balken22','' ');
            $format3 number_format($balken32','' ');
            $format4 number_format($balken42','' ');
            $format5 number_format($balken52','' ');

            IF(!
            $gesamt_query){ 
            $schlecht 0;
            $geht_so 0;
            $ganz_ok 0;
            $gut 0;
            $super 0;

            $fehler_null "Es sind noch keine Stimmen abgeben worden!";

            }

            echo 
            "<b>Stimmen gesamt:</b> $gesamt_query<br>";
            ?>
            <table border="1" bordercolor="#000000" cellspacing="0" width="300"> 
            <tr>
            <td bgcolor="#A8C5FF" colspan="3"><b>Umfrageergebnisse:</b></td>
            </tr>
            <tr>
            <td>schlecht</td>
            <td><?php echo $balken_1?><img src="line.gif" width="<?php echo $balken1;?>%" height="13"></td>
            <td><?php echo "".$format1."%";?></td>
            </tr>
            <tr>
            <td>geht so</td>
            <td><?php echo $balken_2?><img src="line.gif" width="<?php echo $balken2;?>%" height="13"></td>
            <td><?php echo "".$format2."%";?></td>
            </tr>
            <tr>
            <td>ganz ok</td>
            <td><?php echo $balken_3?><img src="line.gif" width="<?php echo $balken3;?>%" height="13"></td>
            <td><?php echo "".$format3."%";?></td>
            </tr>
            <tr>
            <td>gut</td>
            <td><?php echo $balken_4?><img src="line.gif" width="<?php echo $balken4;?>%" height="13"></td>
            <td><?php echo "".$format4."%";?></td>
            </tr>
            <tr>
            <td>super</td>
            <td><?php echo $balken_5?><img src="line.gif" width="<?php echo $balken5;?>%" height="13"></td>
            <td><?php echo "".$format5."%";?></td>
            </tr>
            </table>
            <?php
            //Ausgabe der Fehlermeldungen oder der Bestätigung
            echo "<br><b>$fehler_leer $fehler_kategorie $stimme_ok $fehler_null</b>";
            ?>
            </body>
            </html>

            Kommentar

            Lädt...
            X