Avatar billede -kenner- Nybegynder
04. juli 2004 - 13:43 Der er 9 kommentarer og
1 løsning

Afstemning med lavkage/pinde diagram

Jeg vil gerne lave en afstemning i PHP, men kan ikke rigtig hitte ud af det.. Det skal enten være et pinde diagram eller et lagkage diagram..
Avatar billede googolplex Novice
04. juli 2004 - 14:05 #1
Hvad er det præcis du ikke kan finde ud af og skal det være et pinde, eller et lagkage ?

Jeg sidder selv og laver et pindediagram via GDLib, hvis det er et lagkage du skal lave, så benyt JpGraph.
Avatar billede tubber Juniormester
04. juli 2004 - 14:37 #2
Det nemmeste er pindediagram......

du laver enten 10 eller 100 giffer på 1px (eller 0,5px) og så læser du en værdi ind for den enkelte post (vi siger 100 giffer her i eksemplet), er værdien 53 så laver du følgende regnestykke:

(Stemmer/Total antal stemmer)*100 så ved du hvor mange procent.
er totalt antal stemmer = 89 får får du følgende:

(53/89)*100 = 59%

Så siger du antal giffer lig 59 hvis du har 100 giffer 1 gif for hver procent.

/Tubber
Avatar billede -kenner- Nybegynder
04. juli 2004 - 14:52 #3
Jeg havde håbet på en kode..
Avatar billede googolplex Novice
04. juli 2004 - 15:10 #4
Du kan også generere dine bjælker grafisk via PHP.

http://googolplex.dk/bartest.php

Du kan selv prøve at kalde scriptet, der generere bjælkerne:

http://googolplex.dk/pollbar.php?height=10&width=150&bgcolor=00ff00&bcolor=cc1224&fgcolor=ff0000&percent=27&border=1

Du kan selv prøve at ændre på tallene. Jeg ved dog ikke om det er hurtigt at gøre det på denne måde...

Jeg laver selv en poll for tiden, men det varer lidt før den er færdig.
Avatar billede tubber Juniormester
04. juli 2004 - 15:57 #5
Jeg kan give koden i asp, men PHP er ret nyt for mig......
Jeg ved ikke om du selv kan oversætte den ?
Avatar billede thundercall Nybegynder
04. juli 2004 - 23:20 #6
du er velkommen til at kigge lidt i denne kode her:
- http://www.thundercall.dk/download/polly3.zip
Avatar billede sostack Nybegynder
05. juli 2004 - 08:25 #7
Prøv med:
<?php
//$klik kan være værdier fra en database eller lignende:
$klik  = array(12,32,13,44,15,66,37,81,93,10);
$farve = array("FF0000", "FFFF00", "00FFFF", "0000FF", "00FF00", "FFF000", "FF0F8F", "000FFF", "FF00FF", "0FFF00");
foreach($klik as $vaerdi)
{
    $sum += $vaerdi;
}
echo "<center>\n<table cols='2' border='0' width='250'>\n";
for($i = 0; $i < count($klik); $i++)
{
    echo "<tr>\n<td width='200' align='left'>\n<hr color='" . $farve[$i] . "' size='5' width='" . floor(($klik[$i] / $sum) * 500) . "'>\n</td>\n<td align='right'>\n" . number_format(($klik[$i] / $sum) * 100, 2) . "%\n</td>\n</tr>\n";
}
echo "</table>\n</center>";
?>

//sostack
Avatar billede -kenner- Nybegynder
11. august 2004 - 10:06 #8
jeg kan godt over sætte asp koden hvis jeg kan få den i asp, med bjælker/pinde..
Avatar billede tubber Juniormester
11. august 2004 - 10:16 #9
Her er til et pindediagram:

<%
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("info.mdb")
    Sql = "SELECT count(*) as varFull_count FROM tblInfo"
    Set hent0 = conn.execute(sql)
    Sql = "SELECT count(*) as varMegetGodt FROM tblInfo WHERE dbSvar = 'Meget Godt'"
    Set hent1 = conn.execute(sql)
    Sql = "SELECT count(*) as varGodt FROM tblInfo WHERE dbSvar = 'Godt'"
    Set hent2 = conn.execute(sql)
    Sql = "SELECT count(*) as varLidtGodt FROM tblInfo WHERE dbSvar = 'Lidt Godt'"
    Set hent3 = conn.execute(sql)
    Sql = "SELECT count(*) as varOK FROM tblInfo WHERE dbSvar = 'OK'"
    Set hent4 = conn.execute(sql)
    Sql = "SELECT count(*) as varLidtDaarligt FROM tblInfo WHERE dbSvar = 'Lidt Dårligt'"
    Set hent5 = conn.execute(sql)
    Sql = "SELECT count(*) as varDaarligt FROM tblInfo WHERE dbSvar = 'Dårligt'"
    Set hent6 = conn.execute(sql)
    Sql = "SELECT count(*) as varMegetDaarligt FROM tblInfo WHERE dbSvar = 'Meget Dårligt'"
    Set hent7 = conn.execute(sql)
    Sql = "SELECT count(*) as varVedIkke FROM tblInfo WHERE dbSvar = 'Ved Ikke'"
    Set hent8 = conn.execute(sql)

    varTotal = hent0("varFull_count")
    varTalt1 = hent1("varMegetGodt")
    varTalt2 = hent2("varGodt")
    varTalt3 = hent3("varLidtGodt")
    varTalt4 = hent4("varOK")
    varTalt5 = hent5("varLidtDaarligt")
    varTalt6 = hent6("varDaarligt")
    varTalt7 = hent7("varMegetDaarligt")
    varTalt8 = hent8("varVedIkke")
    ialt1 = varTalt1/varTotal*100
    ialt2 = varTalt2/varTotal*100
    ialt3 = varTalt3/varTotal*100
    ialt4 = varTalt4/varTotal*100
    ialt5 = varTalt5/varTotal*100
    ialt6 = varTalt6/varTotal*100
    ialt7 = varTalt7/varTotal*100
    ialt8 = varTalt8/varTotal*100
%>

<TABLE>
    <TR>
        <TD ALIGN=RIGHT>
            <B>Antal Meninger:</B><BR>
            <HR>
            Meget Godt:<BR>
            Godt:<BR>
            Lidt Godt:<BR>
            OK:<BR>
            Lidt Dårligt:<BR>
            Dårligt:<BR>
            Meget Dårligt:<BR>
            Ved Ikke:
        </TD>
        <TD ALIGN=LEFT>
            <B><%= hent0("varFull_count")%></B><BR>
            <HR>
            <%
            'Første er med 1px som bruges igen og igen
            if Round(ialt1,2) < 5 Then
              &nbsp%>%<BR>
            if Round(ialt1,2) > 5 AND Round(ialt1,2) < 15 Then
                <IMG SRC="1px.gif">
            elseif Round(ialt1,2) > 15 AND Round(ialt1,2) < 25 Then
                <IMG SRC="1px.gif"><IMG SRC="1px.gif">
            elseif Round(ialt1,2) > 25 AND Round(ialt1,2) < 35 Then
                <IMG SRC="1px.gif"><IMG SRC="1px.gif"><IMG SRC="1px.gif">
            'osv
            elseif Round(ialt1,2) > 95 Then
                <IMG SRC="1px.gif"><IMG SRC="1px.gif"><IMG SRC="1px.gif"><IMG SRC="1px.gif"><IMG SRC="1px.gif"><IMG SRC="1px.gif"><IMG SRC="1px.gif"><IMG SRC="1px.gif"><IMG SRC="1px.gif"><IMG SRC="1px.gif">
            end if
            'her med 10 billeder
            if Round(ialt2,2) < 5 Then
              &nbsp%>%<BR>
            if Round(ialt1,2) > 5 AND Round(ialt1,2) < 15 Then
                <IMG SRC="1px.gif">
            elseif Round(ialt1,2) > 15 AND Round(ialt1,2) < 25 Then
                <IMG SRC="2px.gif">
            elseif Round(ialt1,2) > 25 AND Round(ialt1,2) < 35 Then
                <IMG SRC="3px.gif">
            'osv
            elseif Round(ialt1,2) > 95 Then
                <IMG SRC="10px.gif">
            end if
        </TD>
    </TR>
</TABLE>
Avatar billede -kenner- Nybegynder
21. august 2004 - 12:39 #10
kan ikke bruge svarene
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester