Avatar billede mpj_86 Nybegynder
24. januar 2003 - 17:37 Der er 10 kommentarer og
2 løsninger

round til 0.5

hej
jeg har lavet et gemmensnit men jeg kunne godt tænke mig at den bruge stjerne_on_half.gif så den også kan vise halve stjerner (den skal ikke runde til nermeste hele tal men til det nærmeste halvde tal (0.5)

kode:

$gennemsnit=mysql_result(mysql_query("SELECT ROUND(AVG(vote)) AS gennemsnit FROM tagwall"),0);
// Her tæller vi op til og med antallet af stemmer
for($i=0;$i<$gennemsnit;$i++) 
{ 
    $stjerner.='<IMG src="stjerne_on.gif">'; 
} 
$i++; 
// Her udfylder vi resten af pladserne, til og med 5
for($i=$i;$i<=5;$i++) 
{ 
    $stjerner.='<IMG src="stjerne_off.gif">'; 
} 
echo '<CENTER>'.$stjerner.'</CENTER><br>';
Avatar billede mfalck Praktikant
24. januar 2003 - 17:46 #1
det nemmeste er vel at gange værdien med 10, afrunde og så dividere med 10 ...
Avatar billede jakoba Nybegynder
24. januar 2003 - 17:52 #2
i dette tilfælde skal der kun ganges med 2 (så der afrundes til halvdele).

$afrundet = round( $dittal * 2 ) /2;
Avatar billede tipsen Nybegynder
24. januar 2003 - 20:06 #3
hehe :-)

jakob: Hvad er din baggrund egentlig - du tænker generelt meget analytisk - er det udelukkende erfaring eller har du også en uddannelsesmæssig baggrund som faciliterer dette? (Bare nysgerrig!)
Avatar billede jakoba Nybegynder
24. januar 2003 - 20:12 #4
Jeg tog datalogisk første del i halvfjerdserne, og har såvidt jeg ved altid været "analytisk".
Avatar billede mpj_86 Nybegynder
24. januar 2003 - 21:39 #5
er der nogle der kan finde nogle fejl i det her?

$gennemsnit=mysql_result(mysql_query("SELECT ROUND(ROUND(AVG(vote)*2)/2,1) AS gennemsnit FROM tagwall"),0); 
// Her tæller vi op til og med antallet af stemmer
for($i=0;$i<$gennemsnit;$i++) 
{ 
    $stjerner.='<IMG src="stjerne_on.gif">'; 
}
// Er der en halv tilbage?
if($gennemsnit-$i==0.5)
{
    $stjerner.='<IMG src="stjerne_on_half.gif">';
}
$i++; 
// Her udfylder vi resten af pladserne, til og med 5
for($i=$i;$i<=5;$i++) 
{ 
    $stjerner.='<IMG src="stjerne_off.gif">'; 
} 
    $msg = $row["besked"]; 
    echo '<table border="0" width="744" style="border: 1px solid #000000;" align="center" cellspacing="0" cellpadding="0">'; 
    echo '<tr><td bgcolor="#80BCFF" style="border-bottom: 1px solid #000000;"><div style="float:left;">'.$stjerner.'</div><div style="float:right;"><a href="mailto:'.$row['mail'].'">'.$row['navn'].'</a>|'.$row['dato'].'</div>'; 
    echo "</td></tr><tr><td colspan='2' bgcolor='#B9E1FD'>"; 
    echo nl2br($msg); 
    echo "</td></tr>"; 
    echo '</table><br>'; 
}
Avatar billede jakoba Nybegynder
24. januar 2003 - 22:27 #6
den går vist galt her:
if($gennemsnit-$i==0.5)
{                                // det er kun nogen gange du tilføjer ½-stjerne
    $stjerner.='<IMG src="stjerne_on_half.gif">';
}
$i++;                            // men du tæller altid $i een op

skulle den $i++ linie ikke ind i if sætningen:
if($gennemsnit-$i==0.5)
{                              // de gange du tilføjer ½-stjerne
    $stjerner.='<IMG src="stjerne_on_half.gif">';
    $i++;                      // skal $i tælles een op
}

ellers ser det fint ud.
Avatar billede mpj_86 Nybegynder
24. januar 2003 - 22:50 #7
hvordan ville du da så lave det?
Avatar billede jakoba Nybegynder
24. januar 2003 - 22:53 #8
som der står forneden.
Avatar billede mpj_86 Nybegynder
24. januar 2003 - 23:14 #9
$gennemsnit=mysql_result(mysql_query("SELECT ROUND(ROUND(AVG(vote)*2)/2,1) AS gennemsnit FROM tagwall"),0);
// Her tæller vi op til og med antallet af stemmer
for($i=0;$i<$gennemsnit;$i++) 
{ 
    $stjerner.='<IMG src="stjerne_on.gif">'; 
}
// Er der en halv tilbage?
if($gennemsnit-$i==0.5)
{
    $stjerner.='<IMG src="stjerne_on_half.gif">';
    $i++;
}
$i++; 
// Her udfylder vi resten af pladserne, til og med 5
for($i=$i;$i<=5;$i++) 
{ 
    $stjerner.='<IMG src="stjerne_off.gif">'; 
} 
    $msg = $row["besked"];
    echo '<table border="0" width="744" style="border: 1px solid #000000;" align="center" cellspacing="0" cellpadding="0">';
    echo '<tr><td bgcolor="#80BCFF" style="border-bottom: 1px solid #000000;"><div style="float:left;">'.$stjerner.'</div><div style="float:right;"><a href="mailto:'.$row['mail'].'">'.$row['navn'].'</a>|'.$row['dato'].'</div>';
    echo "</td></tr><tr><td colspan='2' bgcolor='#B9E1FD'>";
    echo nl2br($msg);
    echo "</td></tr>";
    echo '</table><br>';
} den her.
^nu siger den at der er fejl i den her
Avatar billede jakoba Nybegynder
24. januar 2003 - 23:16 #10
hvor er den { der hører til din } tilsidst.
Avatar billede mpj_86 Nybegynder
24. januar 2003 - 23:20 #11
det ved jeg ikke men hvis nu at jeg gør sådan her

    $msg = $row["besked"]; {
    echo '<table border="0" width="744" style="border: 1px solid #000000;" align="center" cellspacing="0" cellpadding="0">';
    echo '<tr><td bgcolor="#80BCFF" style="border-bottom: 1px solid #000000;"><div style="float:left;">'.$stjerner.'</div><div style="float:right;"><a href="mailto:'.$row['mail'].'">'.$row['navn'].'</a>|'.$row['dato'].'</div>';
    echo "</td></tr><tr><td colspan='2' bgcolor='#B9E1FD'>";
    echo nl2br($msg);
    echo "</td></tr>";
    echo '</table><br>';
}
?>

så kommer der ikke nogle fejl men der er fejl i det den skal udskrve på siden
Avatar billede jnh Nybegynder
26. januar 2003 - 18:45 #12
kunne du ikke evt. fjerne den sidste } istedet???
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