Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]błąd
Forum PHP.pl > Forum > Przedszkole
fish_12
Mam błąd " Warning: Division by zero in /home/statystyki.php on line 119 "
Wiem,że tam chodzi coś z dzieleniem przez 0,ale nie wiem jak to poprawić.

$srednia = $pkt_w_tej_kolejce / $typowalo;
if ($srednia>$srednia_kolejka_wynik)
{
$srednia_kolejka_wynik=$srednia;
$srednia_kolejka_numer=$i;
}
Mephistofeles
Tutaj błędu nie ma. Musisz pokazać wcześniejszy kod.
fish_12
  1. if ($x>$najlepszy_wynik)
  2. {
  3. $najlepszy_wynik=$x;
  4. $najlepszy_wynik_numer=$i;
  5. }
  6. }
  7.  
  8. $sql = "SELECT clientusername FROM typer_users WHERE pkt_kolejka_$najlepszy_wynik_numer='$najlepszy_wynik' LIMIT 0,1";
  9. $wynik = mysql_query($sql);
  10. $row = mysql_fetch_row($wynik);
  11. $nick = $row[0];
  12.  
  13.  
  14. $max_kolejka=0;
  15. $max_kolejka_numer=0;
  16. $max_kolejka_srednia=0;
  17. $max_kolejka_srednia_nr=0;
  18.  
  19. for ($i=1;$i<$kolej;$i++)
  20. {
  21. $sql = "SELECT SUM(pkt_kolejka_$i) FROM typer_users";
  22. $wynik = mysql_query($sql);
  23. $row = mysql_fetch_row($wynik);
  24. $x = $row[0];
  25. if ($x>$max_kolejka)
  26. {
  27. $max_kolejka=$x;
  28. $max_kolejka_numer=$i;
  29. }
  30. }
  31.  
  32. $srednia_kolejka_wynik=0;
  33. $srednia_kolejka_numer=0;
  34.  
  35. for ($i=1;$i<$kolej;$i++)
  36. {
  37. $sql = "SELECT DISTINCT typer_typy.typujacy FROM typer_typy, typer_mecze WHERE (typer_typy.typowany_mecz = typer_mecze.id AND typer_mecze.kolejka = '$i')";
  38. $wynik = mysql_query($sql);
  39. $typowalo = mysql_num_rows($wynik);
  40.  
  41. $sql = "SELECT SUM(pkt_kolejka_$i) FROM typer_users";
  42. $wynik = mysql_query($sql);
  43. $row = mysql_fetch_row($wynik);
  44. $pkt_w_tej_kolejce = $row[0];
  45.  
  46. $srednia = $pkt_w_tej_kolejce / $typowalo;
  47. if ($srednia>$srednia_kolejka_wynik)
  48. {
  49. $srednia_kolejka_wynik=$srednia;
  50. $srednia_kolejka_numer=$i;
  51. }
  52.  
  53. }
konrados
Cytat
Tutaj błędu nie ma. Musisz pokazać wcześniejszy kod.


No chyba, że $typowalo==0

@fir3xpl: upewnij się, że $typowalo nie jest równe 0.
fish_12
Nic to nie dało.
konrados
A pokaż kod.
fish_12
  1.  
  2. <BR><center><B>S T A T Y S T Y K I</b></center><BR><HR><BR>
  3. <?
  4.  
  5. function lista_newsow($page){
  6.  
  7. $sql = "SELECT count(id) FROM typer_mecze";
  8. $wynik = mysql_query($sql);
  9. $row = mysql_fetch_row($wynik);
  10. $ile_mecze = $row[0];
  11.  
  12. $sql = "SELECT count(id) FROM typer_typy";
  13. $wynik = mysql_query($sql);
  14. $row = mysql_fetch_row($wynik);
  15. $ile_typy = $row[0];
  16.  
  17. $sql = "SELECT count(id) FROM typer_kolejki";
  18. $wynik = mysql_query($sql);
  19. $row = mysql_fetch_row($wynik);
  20. $ile_kolejki = $row[0];
  21.  
  22. if ($ile_mecze!='0' AND $ile_typy!='0' AND $ile_kolejki!='0')
  23. {
  24.  
  25. $sql = "SELECT count(clientusername) FROM typer_users";
  26. $wynik = mysql_query($sql);
  27. $row = mysql_fetch_row($wynik);
  28. $graczy = $row[0];
  29.  
  30. $sql = "SELECT count(id) FROM typer_typy";
  31. $wynik = mysql_query($sql);
  32. $row = mysql_fetch_row($wynik);
  33. $typow = $row[0];
  34.  
  35. $sql = "SELECT SUM(punktow_rozdanych) FROM typer_statystyki";
  36. $wynik = mysql_query($sql);
  37. $row = mysql_fetch_row($wynik);
  38. $punktow_rozdanych = $row[0];
  39.  
  40. $sql = "SELECT SUM(dokladnych) FROM typer_statystyki";
  41. $wynik = mysql_query($sql);
  42. $row = mysql_fetch_row($wynik);
  43. $dokladnych = $row[0];
  44.  
  45. $sql = "SELECT SUM(roznic) FROM typer_statystyki";
  46. $wynik = mysql_query($sql);
  47. $row = mysql_fetch_row($wynik);
  48. $roznic = $row[0];
  49.  
  50. $sql = "SELECT SUM(ogolnych) FROM typer_statystyki";
  51. $wynik = mysql_query($sql);
  52. $row = mysql_fetch_row($wynik);
  53. $ogolnych = $row[0];
  54.  
  55. $sql = "SELECT AVG(punkty) FROM typer_users";
  56. $wynik = mysql_query($sql);
  57. $row = mysql_fetch_row($wynik);
  58. $srednia_na_gracza = $row[0];
  59.  
  60. $sql = "SELECT kolejek FROM typer_konfiguracja";
  61. $wynik = mysql_query($sql);
  62. $row = mysql_fetch_row($wynik);
  63. $kolejek = $row[0];
  64. $kolej = $kolejek+1;
  65.  
  66. for ($i=1;$i<$kolej;$i++)
  67. {
  68. $sql = "SELECT MAX(pkt_kolejka_$i) FROM typer_users";
  69. $wynik = mysql_query($sql);
  70. $row = mysql_fetch_row($wynik);
  71. $x = $row[0];
  72.  
  73. if ($x>$najlepszy_wynik)
  74. {
  75. $najlepszy_wynik=$x;
  76. $najlepszy_wynik_numer=$i;
  77. }
  78. }
  79.  
  80. $sql = "SELECT clientusername FROM typer_users WHERE pkt_kolejka_$najlepszy_wynik_numer='$najlepszy_wynik' LIMIT 0,1";
  81. $wynik = mysql_query($sql);
  82. $row = mysql_fetch_row($wynik);
  83. $nick = $row[0];
  84.  
  85.  
  86. $max_kolejka=0;
  87. $max_kolejka_numer=0;
  88. $max_kolejka_srednia=0;
  89. $max_kolejka_srednia_nr=0;
  90.  
  91. for ($i=1;$i<$kolej;$i++)
  92. {
  93. $sql = "SELECT SUM(pkt_kolejka_$i) FROM typer_users";
  94. $wynik = mysql_query($sql);
  95. $row = mysql_fetch_row($wynik);
  96. $x = $row[0];
  97. if ($x>$max_kolejka)
  98. {
  99. $max_kolejka=$x;
  100. $max_kolejka_numer=$i;
  101. }
  102. }
  103.  
  104. $srednia_kolejka_wynik=0;
  105. $srednia_kolejka_numer=0;
  106.  
  107. for ($i=1;$i<$kolej;$i++)
  108. {
  109. $sql = "SELECT DISTINCT typer_typy.typujacy FROM typer_typy, typer_mecze WHERE (typer_typy.typowany_mecz = typer_mecze.id AND typer_mecze.kolejka = '$i')";
  110. $wynik = mysql_query($sql);
  111. $typowalo = mysql_num_rows($wynik);
  112.  
  113. $sql = "SELECT SUM(pkt_kolejka_$i) FROM typer_users";
  114. $wynik = mysql_query($sql);
  115. $row = mysql_fetch_row($wynik);
  116. $pkt_w_tej_kolejce = $row[0];
  117.  
  118. $srednia = $pkt_w_tej_kolejce / $typowalo;
  119. if ($srednia>$srednia_kolejka_wynik)
  120. {
  121. $srednia_kolejka_wynik=$srednia;
  122. $srednia_kolejka_numer=$i;
  123. }
  124.  
  125. }
  126.  
  127.  
  128. print("<center><table border=1 width=65%>");
  129. print("<tr width=50% bgcolor=lightblue><td align=center>Graczy</td><td align=center>$graczy</td></tr>");
  130. print("<tr bgcolor=lightblue><td align=center>Typów łacznie</td><td align=center>$typow</td></tr>");
  131. print("<tr bgcolor=lightblue><td align=center>Punktów rozdanych</td><td align=center>$punktow_rozdanych</td></tr>");
  132. print("<tr bgcolor=lightblue><td align=center>Dokładnych trafień</td><td align=center>$dokladnych</td></tr>");
  133. print("<tr bgcolor=lightblue><td align=center>Trafień różnicy bramek</td><td align=center>$roznic</td></tr>");
  134. print("<tr bgcolor=lightblue><td align=center>Ogólnych trafień</td><td align=center>$ogolnych</td></tr>");
  135. print("<tr bgcolor=lightblue><td align=center>Srednia pkt na gracza</td><td align=center>");
  136. printf("%.1f",$srednia_na_gracza);
  137.  
  138. print("</td></tr>");
  139. if ($x>0)
  140. {
  141. print("<tr bgcolor=lightblue><td align=center>Najwyższy indywidualny wynik w kolejce</td><td align=center>$nick ($najlepszy_wynik pkt) w $najlepszy_wynik_numer kolejce</td></tr>");
  142. }
  143. else
  144. print("<tr bgcolor=lightblue><td align=center>Najwyższy indywidualny wynik w kolejce</td><td align=center>kto to wie</td></tr>");
  145.  
  146. print("<tr bgcolor=lightblue><td align=center>Najlepsza kolejka</td><td align=center>$max_kolejka_numer kolejka, $max_kolejka pkt.</td></tr>");
  147.  
  148.  
  149. print("<tr bgcolor=lightblue><td align=center>Najlepsza kolejka (srednia)</td><td align=center>$srednia_kolejka_numer kolejka, $srednia_kolejka_wynik pkt.</td></tr>");
  150.  
  151. print("</table>");
  152. print("<br><br>");
  153. $ile = 20;
  154.  
  155. --$page;
  156.  
  157. $wynik_ile=mysql_query("SELECT count(*) FROM typer_kolejki");
  158. list($wszystkich)=mysql_fetch_row($wynik_ile);
  159.  
  160. $podstron=ceil($wszystkich/$ile);
  161.  
  162. $sql_newsy = "SELECT id, kolejka, godzina, dzien, miesiac, rok, otwarte FROM typer_kolejki ORDER by id desc LIMIT ".($page*$ile).",".$ile;
  163. $wynik_newsy = mysql_query($sql_newsy);
  164. print("<center>");
  165. print("<Table width=95% align=\"center\">");
  166. print("<tr align=center bgcolor=orange><td>nr kolejki</td><td>data zamknięcia</td><td>meczy w kolejce</td><td>status</td><td align=center>opcje</td></tr>");
  167.  
  168. while($row = mysql_fetch_row($wynik_newsy))
  169.  
  170. {
  171.  
  172. // 0 - do typowania
  173. // 1 - nie mozna typowac, nie zamknieta
  174. // 2 - nie mozna typowac, zamknieta
  175.  
  176. if ($row[6]=='0') $status='otwarta';
  177. if ($row[6]=='1') $status='w trakcie';
  178. if ($row[6]=='2') $status='zakonczona';
  179.  
  180.  
  181. $wynik_iles=mysql_query("SELECT count(*) FROM typer_mecze WHERE kolejka=$row[1]");
  182. list($meczy)=mysql_fetch_row($wynik_iles);
  183.  
  184. print("\n<tr align=center bgcolor=lightblue>\n<td>".$row[1]."</td>\n<td>godzina $row[2], data $row[3]/$row[4]/$row[5]</td>\n");
  185.  
  186. print("<td>$meczy</td>");
  187. print("<td>$status</td>");
  188.  
  189. print("<td><a href=index.php?akcja=typer_statystyki&comm=pokaz&kolejka=$row[1]>Statystyki</a>");
  190.  
  191.  
  192. print("</tr>");
  193.  
  194. }
  195.  
  196. print("</Table>\n");
  197.  
  198. print("<br><br><div align=\"center\">\n");
  199.  
  200. $page++;
  201.  
  202. for ($i=1; $i<=$podstron; $i++) {
  203.  
  204. if ($i==$page){
  205.  
  206. print($i);
  207.  
  208. }else{
  209.  
  210. print("<a href=\"index.php?akcja=typer_newsy&where=$where&page=$i\"> $i </a>");
  211.  
  212. }
  213.  
  214. }
  215.  
  216. print("</div>");
  217.  
  218. print("<div align=\"center\">\n");
  219.  
  220. }
  221.  
  222. else print("<center>Za wczesnie na podawanie statystyk. Rozegraj przynajmniej jedna kolejke");
  223.  
  224.  
  225. print("<BR><BR><a href=index.php>Strona glowna FUKS TYPERA</a>");
  226. print("</div>");
  227.  
  228. }
  229.  
  230. function pokaz()
  231. {
  232. global $kolejka;
  233.  
  234. $wynik_iles=mysql_query("SELECT count(id) FROM typer_mecze WHERE kolejka=$kolejka");
  235. $meczy=mysql_num_rows($wynik_iles);
  236.  
  237. $sql = "SELECT count(typer_typy.id) FROM typer_typy, typer_mecze WHERE (typer_mecze.kolejka = '$kolejka' AND typer_mecze.id = typer_typy.typowany_mecz)";
  238.  
  239. $wynik = mysql_query($sql);
  240. $row = mysql_fetch_row($wynik);
  241. $typow = $row[0];
  242.  
  243. $sql = "SELECT DISTINCT typer_typy.typujacy FROM typer_typy, typer_mecze WHERE (typer_typy.typowany_mecz = typer_mecze.id AND typer_mecze.kolejka = '$kolejka')";
  244. $wynik = mysql_query($sql);
  245. $graczy = mysql_num_rows($wynik);
  246.  
  247. $sql = "SELECT dokladnych, roznic, ogolnych, punktow_rozdanych FROM typer_statystyki WHERE kolejka=$kolejka";
  248. $wynik = mysql_query($sql);
  249. $row = mysql_fetch_row($wynik);
  250. $dokladnych = $row[0];
  251. $roznic = $row[1];
  252. $ogolnych = $row[2];
  253. $pkt_rozdanych = $row[3];
  254. $blednych = $typow - $dokladnych - $roznic - $ogolnych;
  255. $srednia_pkt_gracza = $pkt_rozdanych / $graczy;
  256.  
  257. print("<center><table border=1 width=65%>");
  258. print("<tr width=50% bgcolor=lightblue><td align=center>Meczy w kolejce</td><td align=center>$meczy</td></tr>");
  259. print("<tr width=50% bgcolor=lightblue><td align=center>Typowalo graczy</td><td align=center>$graczy</td></tr>");
  260. print("<tr bgcolor=lightblue><td align=center>Typów lacznie</td><td align=center>$typow</td></tr>");
  261. print("<tr bgcolor=lightblue><td align=center>Typów trafionych dokladnie</td><td align=center>$dokladnych</td></tr>");
  262. print("<tr bgcolor=lightblue><td align=center>Typow z dobra roznica</td><td align=center>$roznic</td></tr>");
  263. print("<tr bgcolor=lightblue><td align=center>Typow trafionych ogolnie</td><td align=center>$ogolnych</td></tr>");
  264. print("<tr bgcolor=lightblue><td align=center>Typow blednych</td><td align=center>$blednych</td></tr>");
  265. print("<tr bgcolor=lightblue><td align=center>Punktów rozdanych w kolejce</td><td align=center>$pkt_rozdanych</td></tr>");
  266. print("<tr bgcolor=lightblue><td align=center>Srednia pkt na gracza</td><td align=center>");
  267. printf("%.1f",$srednia_pkt_gracza); print("</td></tr>");
  268. print("</table>");
  269.  
  270. print("<Bbr><br>Najlepszych 10 graczy w kolejce : <br><br>");
  271.  
  272. $sql = "SELECT clientusername, pkt_kolejka_$kolejka FROM typer_users ORDER BY pkt_kolejka_$kolejka LIMIT 0,10";
  273.  
  274. $wynik = mysql_query($sql);
  275. $i=1;
  276. print("<center><table border=1 width=65%>");
  277. while ($row = mysql_fetch_row($wynik))
  278. {
  279. print("<tr bgcolor=lightblue><td width=5%>$i</td><td width=80%>$row[0]</td><td>$row[1] pkt</td></tr>");
  280. }
  281. print("</table>");
  282. print("<br><br>");
  283. print("<a href=java script:history.back();>Powrot</a><BR><BR>");
  284. }
  285.  
  286.  
  287.  
  288. polacz();
  289.  
  290. switch($comm)
  291. {
  292. case "pokaz": pokaz(); break;
  293.  
  294. default : lista_newsow(1); break;
  295.  
  296. }
  297.  
  298. ?>
konrados
No i nie widzę byś sprawdzał cokolwiek, ma być np takie coś:

  1. if($typowalo==0) $srednia=0;
  2. else
  3. $srednia = $pkt_w_tej_kolejce / $typowalo;


Oczywiście możesz coś innego zrobić, jeśli $typowalo==0

I podobnie wszędzie, gdzie dzielisz.

A jeśli wydaje Ci się, że $typowalo nie ma prawa być równe 0 no to coś nie tak w zapytaniu.
Mephistofeles
Cytat
No chyba, że $typowalo==0

Wiem, dlatego prosiłem o resztę kodu żeby ustalić co zawiera $typowalo.
konrados
Cytat
Wiem, dlatego prosiłem o resztę kodu żeby ustalić co zawiera $typowalo.


Wpadłem na to, ale już po napisaniu posta:)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.