tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
633
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von acquire
    acquire acquire ist offline Mitglied Silber
    Registriert seit
    Nov 2003
    Beiträge
    93
    Hallo!

    Ich habe nach einem Tutorial ein Umfragescript gebaut und auch verändert.
    Hier könnt ihr es sehen:
    http://mysteryandcrime.de/umfrage/

    Nun zu meinem Problem:
    Ich würde ganz gerne einen Zähler einbauen, der unten ausgibt wie viele insgesamt abgestimmt haben und die Grafik nicht als einzelne Striche sondern als Balken haben und am besten noch mit Prozentanzeige und in Klammern dahinter wie viele Stimmen das waren.
    Leider finde ich nichts was mir helfen könnte und ich habe keine Idee wie ich es umsetzen könnte.

    Ich möchte nämlich ungern ein fertiges Script mit Copyright darunter nehmen.
    Höchstens im Quelltext, aber nicht für den Benutzer sichtbar.

    Kann mir dabei jemand helfen?

    Vielen Dank im Voraus!

    Gruß
    acquire
     
    Gebildet ist, wer weiß, wo er findet, was er nicht weiß. - Georg Simmel

  2. #2
    Avatar von ultrasonic
    ultrasonic ultrasonic ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Ort
    Wiesbaden Germany
    Beiträge
    140
    Hallo acquire,


    ersteinmal währe es nicht shclecht wenn du einen aussagkräftigen Teil deines Quelltextes posten würdest.

    zum Thema Balken :

    Erzeuge mit einem Grafikprog. einen Balken 1px breit und z.B. 5px hoch
    und speichere ihn unter z.b. balken_1x5.jpg

    dann rufe den Balken für die Statistik z.B.so auf:
    <img src="balken1x5.jpg" border="0" witdh="<? echo $anzahl_gesammte_stimmen; ?>">

    Gruß
    Ultrasonic
     

  3. #3
    Registriert seit
    Jul 2003
    Ort
    Gronau, Nordrhein-Westfalen, Germany, Germany
    Beiträge
    634
    Wie %-Rechnung geht müsstest Du ja eigentlich wissen

    Und Variablen zusammenzählen kann ja auch nicht schwer sein :P

    Und zur strichanzeige...
    nimm einen 1x1 px großen pkt. und schau wieviel px 100% haben sollen!
    Im einfachsten fall nehmen wir mal 100px für 100%.
    Wenn du alle %Werte hast, machst du per width den strich einfach so lang wie die % zahl groß ist
    Mit höheren px Werten musste halt einfach ein wenig rumprobieren!

    Ist villeicht nicht die eleganteste Erklärung, aber jeder der Spaß am ausprobieren hat, sollte es mit dieser Lösung hinbekommen!

    cYa
     

  4. #4
    Registriert seit
    Jul 2002
    Ort
    Frankenstein/Pfalz
    Beiträge
    612
    man kann doch wunderbar dynamische Images mit php erstellen und diese in eienr Tabelle ausgeben.
    PHP-Code:
    <?php
    if ($breite<>0)
       { (int)
    $prozentbreite $breite/$gesamt*100; }
    else
       { 
    $prozentbreite 1; }
    $img imagecreate($prozentbreite,20);
    if (
    $color==1)
      {
              
    $vcolor imagecolorallocate($img211,211,211);
      }
    if (
    $color==2)
      {
              
    $vcolor imagecolorallocate($img47,79,79);
      }
    if (
    $color==3)
      {
              
    $vcolor imagecolorallocate($img255,250,250);
      }
    $bcolor imagecolorallocate($img0,0,0);
    imagefilledrectangle($img,0,0,$prozentbreite,20,$vcolor);
    imagepng($img);
    imagedestroy($img);
    ?>
    das ist die image.php und die wird mit diesem Script aufgerufen
    PHP-Code:
    <html><head><title>Showpoll</title>
    <link rel=stylesheet type="text/css" href="default.css">
    </head>
    <?php
         
    include ('color.inc');
         include (
    'mysqlvar.php');
         
    $siteInfo=$si[16];
         
    $headZusatz[0]="<b class='code'>$tt_Text[108]<br>".$frage."</b>";
         include(
    "head.php");
         include(
    'abstaende.php');
         
    $t = new tabelle;
               
    $t->rows $anzahl+1;
               
    $t->cols 3;
               
    $t->einrueck $STL;
               
    $t->rowspan $anzahl+1// ecount = eintraege zaehler da jeder beitrag 3 reihen *3 s.u.
               
    $t->border 0;
               
    $t->sb = array("200","40","200");
               
    $t->klaraPfad "bilder/klara.gif";
               
    $t->ra $SBR;// reihen abstand
                                    /* end TABELLEN EINSTELLUNGEN */
         
    $t->doTable("open");
         
    $db=mysql_connect($dbserver,$dbuser,$dbpass);
         if (!
    $db) { die( "<tr><td><b class=\"fehlermeldung\">".$f_Text[8]."</b></td></tr></table></body></html>" ); }
         
    mysql_select_db($dbname,$db);
         
    $query"SELECT * FROM polls WHERE tid=".$tid;
         
    $result mysql_query($query,$db);
         if (!
    $result) { die ( "<tr><td><b class=\"fehlermeldung\">".$f_Text[14]."</b></td></tr></table></body></html>" ); }
         
    $ergebnis=mysql_fetch_array($result,MYSQL_ASSOC);
         if (
    $typ == "Abstimmen")
         {
           
    $dayafter time()-86400;
           
    //  $dayafter = time()-40;
           
    $query3 "DELETE FROM pollsperre WHERE zeit < $dayafter";
           
    $result3 mysql_query($query3,$db);
           
    $userip getenv('REMOTE_ADDR');
           
    $query2 "SELECT * FROM pollsperre WHERE ip = '$userip' AND pollnummer = $tid";
           
    $result2 mysql_query($query2,$db);
           
    $lines2 mysql_num_rows($result2);
           
    $rower mysql_fetch_array($result2,MYSQL_ASSOC);
           if (
    $lines2 == 0)
                {
                    if (
    $antwort == 1)
                            {
                                    
    $ergebnis["zaehler1"] = $ergebnis["zaehler1"] +1;
                            }
                    if (
    $antwort == 2)
                            {
                                    
    $ergebnis["zaehler2"] = $ergebnis["zaehler2"] +1;
                            }
                    if (
    $antwort == 3)
                            {
                                    
    $ergebnis["zaehler3"] = $ergebnis["zaehler3"] +1;
                            }
                    if (
    $antwort == 4)
                            {
                                    
    $ergebnis["zaehler4"] = $ergebnis["zaehler4"] +1;
                            }
                    if (
    $antwort == 5)
                            {
                                    
    $ergebnis["zaehler5"] = $ergebnis["zaehler5"] +1;
                            }
                    
    $akttime time();
                    
    $query3 "INSERT INTO pollsperre (ip , zeit, pollnummer) VALUES ('$userip', '$akttime', '$tid')";
                    
    $result3 mysql_query($query3,$db);
                 }
         }
         
    $gesamt 0;
         
    $gesamt $ergebnis["zaehler1"]+$ergebnis["zaehler2"]+$ergebnis["zaehler3"]+$ergebnis["zaehler4"]+$ergebnis["zaehler5"];
         echo 
    "<tr><td>".$antwort1."</td><td align=\"center\">".$ergebnis["zaehler1"]."</td><td><img src=\"image.php?breite=".$ergebnis["zaehler1"]."&gesamt=".$gesamt."&color=1\"></td></tr>";
         echo 
    "<tr><td>".$antwort2."</td><td align=\"center\">".$ergebnis["zaehler2"]."</td><td><img src=\"image.php?breite=".$ergebnis["zaehler2"]."&gesamt=".$gesamt."&color=2\"></td></tr>";
         if (
    $anzahl>=3)
           {
             echo 
    "<tr><td>".$antwort3."</td><td align=\"center\">".$ergebnis["zaehler3"]."</td><td><img src=\"image.php?breite=".$ergebnis["zaehler3"]."&gesamt=".$gesamt."&color=1\"></td></tr>";
           }
         if (
    $anzahl>=4)
           {
             echo 
    "<tr><td>".$antwort4."</td><td align=\"center\">".$ergebnis["zaehler4"]."</td><td><img src=\"image.php?breite=".$ergebnis["zaehler4"]."&gesamt=".$gesamt."&color=2\"></td></tr>";
           }
         if (
    $anzahl==5)
           {
             echo 
    "<tr><td>".$antwort5."</td><td align=\"center\">".$ergebnis["zaehler5"]."</td><td><img src=\"image.php?breite=".$ergebnis["zaehler5"]."&gesamt=".$gesamt."&color=1\"></td></tr>";
           }
         echo 
    "<tr><td>".$tt_Text[91]."</td><td align=\"center\">".$gesamt."</td><td><img src=\"image.php?breite=".$gesamt."&gesamt=".$gesamt."&color=3\"></td></tr></table>";
         
    $query "UPDATE polls SET zaehler1='".$ergebnis["zaehler1"]."', zaehler2='".$ergebnis["zaehler2"]."', zaehler3='".$ergebnis["zaehler3"]."', zaehler4='".$ergebnis["zaehler4"]."', zaehler5='".$ergebnis["zaehler5"]."' WHERE tid=".$tid;
         
    $result mysql_query($query,$db);
         if (!
    $result) { die ("<tr><td><b class=\"fehlermeldung\">".$f_Text[25]."</b></td></tr></table></body></html>"); }
    ?>
    interessant ist für dich eher nur der untere Teil ab
    PHP-Code:
    $gesamt=0
    Anschauen kannste es dir hier
    http://www.joelh.de/jbb/topiczeigen.php?nr=1457&seite=1
    Einfach auf ansehen klicken.
     
    My way to Programers heaven =>(klick)
    mfg. JoelH
    Unser Selfruby Projekt

  5. #5
    Avatar von acquire
    acquire acquire ist offline Mitglied Silber
    Registriert seit
    Nov 2003
    Beiträge
    93
    Danke für die Antworten.
    Ich werde gleich mal etwas herumprobieren.
    Jetzt ist mir auch wieder eingefallen das das Tutorial von hier stammt.

    Hier noch mal der Code, so wie ich ihn habe:
    PHP-Code:
    <?PHP
    // reloadsperre //

    function schreiben($datei,$mode) {
       global 
    $REMOTE_ADDR;
       
    $fp = @fopen($datei,$mode);
       
    flock($fp,2);
       
    fwrite($fp,$REMOTE_ADDR."|".time()."\n");
       
    flock($fp,3);
       
    fclose($fp);
    }


    function 
    ip_sperre() {
       global 
    $REMOTE_ADDR;
       
    $reloadlogdatei "ips.txt";
       
    $anzahleintraege 50// nach 50 IPs werden die alten gelöscht
       
    $zeitlimit 3600// IP Sperr-Zeit


       // existiert die Datei? Wenn nicht wird sie erstellt.

       
    if(!file_exists($reloadlogdatei)) {
          
    $datei fopen($reloadlogdatei,"w+");
          
    fclose($datei);
       }
       
    $fp file($reloadlogdatei);
       
    $size sizeof($fp);


       if(
    $size >= $anzahleintraege){
          
    schreiben($reloadlogdatei,"w");

          
    // Prüft, ob eine IP in der Liste steht
          
       
    }
       else {
          
    $ausgabe=false;
          for (
    $i=0;$i<$size;$i++) {
             
    $zeile explode("|",$fp[$i]);
             if (
    $zeile[0] == $REMOTE_ADDR AND $zeile[1] > (time()-$zeitlimit)){
                
    // IP wird gefunden
                
    $ausgabe true;
             }
          }

          
    // speichert IP
          
    schreiben($reloadlogdatei,"a+");
       }
       return 
    $ausgabe;
    }


    // Einstellungen //
    $frage "Umfrage:  mysteryandcrime.de - Name?";  // Thema der Umfrage


    $anzahl 3;  // Anzahl der Auswahloptionen


    $option[0] = "mysteryandcrime.de - Die Fanpage über das Unlösbare";  // Option 1
    $option[1] = "mysteryandcrime.de - Die Fanpage zur Homepage";
    $option[2] = "mysteryandcrime.de - Die Fanpage zur Hörspielserie";
    $option[3] = "mysteryandcrime.de - ";
    $option[4] = "mysteryandcrime.de - ";


    $farbe[0]="#0000FF";  // Farbe des 1. Balkens
    $farbe[1]="#00FF00";  // usw.
    $farbe[2]="#FF0000";
    $farbe[3]="#FFFF00";
    $farbe[4]="#00FFFF";


    $datei "ergebnis.txt";



    if (
    file_exists($datei)) {  //existiert die Datei?
        
    $votes=file($datei);  //dann in Array "$votes" einlesen
    }

    else {  
    //wenn nicht
        
    $handle fopen($datei"w+");  //Datei anlegen
        
    $i=0;
        for (
    $i$i<$anzahl$i++) {  //fuer jede Option
            
    fputs($handle,"0\n");  //"0" in Datei schreiben
        
    }
        
    fclose($handle);
        
    $votes=file($datei);  //Datei in Array "$votes" einlesen
    }


    // Ergebnis anpassen und in die Datei schreiben //


    if (($submitvote) && (ip_sperre()==false)) {
        
    settype($votes[$radio],"integer");
        
    $votes[$radio]++;  //Option um eins erhoehen
        
    $handle fopen($datei"w+");
        
    $i=0;
        for (
    $i$i<$anzahl$i++) {  //fuer jede Option
            
    settype($votes[$i],"integer");
            
    fputs($handle,"$votes[$i]\n");  //Anzahl in Datei schreiben (mit Zeilenvorschub)
        
    }
        
    fclose($handle);
    }

    // Ausgabe //

    echo "<H2>".$frage."</H2>\n\n";  //Ueberschrift schreiben



    // Ergebnis als Balkengrafik //


    $i=0;
    for (
    $i$i<$anzahl$i++) {  //fuer jede Option
        
    $j=0;
        echo 
    $option[$i]."&nbsp;&nbsp;&nbsp;<FONT COLOR=\"".$farbe[$i]."\">";  //Option ausgeben und Farbe setzen
        
    for($j$j<$votes[$i]; $j++) {  //fuer Anzahl der Votes
            
    echo "|";  //je einen Strich ausgeben
        
    }
        echo 
    "&nbsp;&nbsp;&nbsp;".$votes[$i]."</FONT><BR>\n";  //Balken zu ende, also Zeilenumbruch

    }



    // Auswahlformular //



    echo "<br><FORM ACTION=\"".$PHP_SELF."\" METHOD=\"Post\">\n";  //Formular anfangen

    $i=0;

    for (
    $i$i<$anzahl$i++) {  //fuer jede Option

        
    echo "<INPUT TYPE=\"radio\" NAME=\"radio\" VALUE=\"".$i."\">".$option[$i]."<BR>\n";  //Radiobutton anzeigen

    }
    echo 
    "<INPUT TYPE=\"Submit\" VALUE=\"Abstimmen\" NAME=\"submitvote\"></FORM>";  //Formularende
    ?>
    Edit:
    @ JoelH:
    Basiert dein Script auf MySQL? Oder täusche ich mich da?
    Geändert von acquire (05.01.04 um 19:43 Uhr)
     
    Gebildet ist, wer weiß, wo er findet, was er nicht weiß. - Georg Simmel

Ähnliche Themen

  1. [PHP] Umfragescript erstellen
    Von chris4life im Forum Stellenangebote (unentgeltlich)
    Antworten: 3
    Letzter Beitrag: 01.09.09, 11:19
  2. Umfragescript
    Von bifur81 im Forum PHP
    Antworten: 0
    Letzter Beitrag: 16.10.08, 19:30
  3. Umfragescript
    Von Mew im Forum PHP
    Antworten: 1
    Letzter Beitrag: 01.05.08, 14:06
  4. Antworten: 3
    Letzter Beitrag: 07.09.07, 12:10
  5. [PHP]-Das UmfrageScript von eurern Tutorials
    Von Bloodyroar im Forum PHP
    Antworten: 3
    Letzter Beitrag: 03.12.03, 20:24