Autor Zpráva
Peter45
Profil
Mam takyto kod z netu, sice mi to na jednej stranke funguje ale na druhej mi to hadze chybu Warning: Division by zero in /data/b/a/stranka.eu/web/stranka.php on line 9
Odkazuje to na tento riadok $prumer_hodnoceni = $soucet_hodnoceni/$pocet_hodnoceni;

<?php
$spojeni = MySQL_connect('localhost','login','heslo');
mysql_select_db('name', $spojeni); 
$vysledek=mysql_query("SELECT pocet_hodnoceni, soucet_hodnoceni FROM clanky WHERE id='".$id."' ;");
$zaznam2=MySQL_Fetch_Array($vysledek); echo mysql_error(); 
  $pocet_hodnoceni = $zaznam2["pocet_hodnoceni"];
  $soucet_hodnoceni = $zaznam2["soucet_hodnoceni"];
$vysledek=mysql_query("UPDATE clanky SET  soucet_hodnoceni='".($_POST["oznaceno"]+$soucet_hodnoceni)."',  pocet_hodnoceni='".($_POST["pocet"]+$pocet_hodnoceni)."' WHERE id = '$id' ;");
$prumer_hodnoceni = $soucet_hodnoceni/$pocet_hodnoceni;
   if($prumer_hodnoceni<1.5)
     echo "<img src='images/1.png'>";
   else 
      if($prumer_hodnoceni<2.5)
        echo "<img src='images/2.png'>";
      else
         if($prumer_hodnoceni<3.5)
          echo "<img src='images/3.png'>";
         else
           if($prumer_hodnoceni<4.5)
            echo "<img src='images/4.png'>";
           else
             if($prumer_hodnoceni<5)
              echo "<img src='images/5.png'>";
              
?>
pcmanik
Profil
Peter45:
To je síce pekné, ale od nás chceš čo? Chyba ti odkazuje na delenie nulou.
Peter45
Profil
To som si uz prelozil ale co to znamena?
pcmanik
Profil
Peter45:
Znamená to, že delíš číslom 0 a teda výsledok bude zase 0. Takže v tej premennej pravdepodobne nemáš to, čo očakávaš.
jenikkozak
Profil
pcmanik:
Znamená to, že delíš číslom 0 a teda výsledok bude zase 0.
Právě že není. Kdyby výsledek dělení nulou byl nula, nepředstavovalo by toto dělení žádný problém. V oboru reálných čísel nulou dělit vůbec nelze, v oboru komplexních čísel je výsledkem nekonečno.
CrazyC0de
Profil
Zkus místo "

$vysledek=mysql_query("SELECT pocet_hodnoceni, soucet_hodnoceni FROM clanky WHERE id='".$id."' ;");
$zaznam2=MySQL_Fetch_Array($vysledek); echo mysql_error(); 
"

dát :
$vysledek = mysql_query("SELECT pocet_hodnoceni, soucet_hodnoceni FROM clanky WHERE id='$id'");
while($while = mysql_fetch_array($vysledek)){
$pocet_hodnoceni = $while["pocet_hodnoceni"];
  $soucet_hodnoceni = $while["soucet_hodnoceni"];

} 

snad pomůže, dodatek, nejspíše tam někde bude chyba v tom vytahování těch pocet,soucet z DB, soudím tak dle toho že, to vrací nulu...
Alphard
Profil
CrazyC0de [#6]:
Z databáze se očekává maximálně jeden záznam. Dávat tam cyklus je matoucí, if by fungoval stejně, ale je třeba podmínit i zbytek kódu.

Peter45:
A zabezpečení? Pracujete s čísly, tak to aspoň explicitně přetypujte na čísla.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0