Autor | Zpráva | ||
---|---|---|---|
Peter45 Profil |
#1 · Zasláno: 28. 12. 2012, 11:04:51
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 |
#2 · Zasláno: 28. 12. 2012, 11:07:38
Peter45:
To je síce pekné, ale od nás chceš čo? Chyba ti odkazuje na delenie nulou. |
||
Peter45 Profil |
#3 · Zasláno: 28. 12. 2012, 11:09:32
To som si uz prelozil ale co to znamena?
|
||
pcmanik Profil |
#4 · Zasláno: 28. 12. 2012, 12:03:03
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 |
#5 · Zasláno: 28. 12. 2012, 12:59:26
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 |
#6 · Zasláno: 28. 12. 2012, 23:13:44
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 |
#7 · Zasláno: 29. 12. 2012, 10:43:17
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. |
||
Časová prodleva: 11 let
|
0