Avatar billede fbb Nybegynder
24. maj 2004 - 10:54 Der er 11 kommentarer og
1 løsning

Division by zero

Hej, jeg for denne fejl:
Warning: Division by zero in /web/www.frederikbb.dk/www/numsegejl1/vis.php on line 14

$result = mysql_query("SELECT * FROM numsegejlgalleri where id = '$id'");
WHILE($raekke = mysql_fetch_assoc($result))
{
    $gennemsnit = $raekke["vote"] / $raekke["hits"];
echo'<div align="center">
    <table border="0" cellpadding="0" cellspacing="0" width="515">
        <tr>
            <td valign="top" width="128"><font face="Verdana" size="2"><b>Gennemsnit:</b><br>';
echo number_format ( $gennemsnit, 1 );
echo'</font>';
}

Linie 14 er:
$gennemsnit = $raekke["vote"] / $raekke["hits"];

Men det er kun når begge felter er 0, men hvordan undgår jeg det, altså den skal bare ikke skrive den fejl.
Avatar billede michael_stim Ekspert
24. maj 2004 - 11:00 #1
med en if-sats.
Avatar billede sostack Nybegynder
24. maj 2004 - 11:00 #2
if(0 != $raekke["vote"] && 0 != $raekke["hits"])
{
    $gennemsnit = $raekke["vote"] / $raekke["hits"];
}
Avatar billede michael_stim Ekspert
24. maj 2004 - 11:02 #3
if($raekke["vote"] != 0 || $raekke["hits"] != 0)
{
    $gennemsnit = $raekke["vote"] / $raekke["hits"];
}
Avatar billede sostack Nybegynder
24. maj 2004 - 11:02 #4
Du kan evt. nøjes med:
if(0 != $raekke["hits"])
{
    $gennemsnit = $raekke["vote"] / $raekke["hits"];
}
da det kun er ulovligt med 0 under brøkstregen, over giver resultatet bare altid 0.

//sostack
Avatar billede sostack Nybegynder
24. maj 2004 - 11:05 #5
michael_stim =>
hvis han bruger din udgave, vil 8 personer(hits) der har givet 0 point(vote) ikke få vist et gennemsnit, og det er vel for at lave en vursering af folks mening om nogle ting, han vil have et gennemsnit, mon ikke?

//sostack
Avatar billede fbb Nybegynder
24. maj 2004 - 11:05 #6
nice tak :)
Avatar billede fbb Nybegynder
24. maj 2004 - 11:06 #7
jeg bruger bare din første sostack, eller synes du jeg skal bruge den sidste du skrev?
Avatar billede michael_stim Ekspert
24. maj 2004 - 11:07 #8
Ja,det er klart. Tänkte forkert der, tänkte at man ikke måtte dividere noget af det med 0.
Avatar billede sostack Nybegynder
24. maj 2004 - 11:08 #9
Det er vist hip som hap i dette tilfælde, men den sidste er den korteste, og den hurtigste, da den kun skal tjekke en variabel.

//sostack
Avatar billede fbb Nybegynder
24. maj 2004 - 11:11 #10
ok, men tak for hjælpen ;)
Avatar billede Slettet bruger
24. maj 2004 - 11:12 #11
Eventuelt kan det være en ide at lave en else, hvor du sætter $gennemsnit til 0.

if(0 != $raekke["hits"])
{
    $gennemsnit = $raekke["vote"] / $raekke["hits"];
} else {
    $gennemsnit = 0;
}
Avatar billede sostack Nybegynder
24. maj 2004 - 11:12 #12
no prob.

//sostack
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