Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PHP Operacje na dużych liczbach
nowAnd22
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 20.05.2011

Ostrzeżenie: (0%)
-----


Witajcie,
mam problem z dodawaniem dużych liczb.
Gdy dodaje z bazy produkty w cenie np. 599.00 i 599.00 to mi liczy sume i jest dobrze,
ale jeśli wybiorę produkt ponad 1000.00 to już nie działa i wyświetla np. 1,00 lub 2,00
W bazie zmieniłem format kwoty na decimal(7,2)
fragment kodu:

  1. <?php
  2. $total = 0;
  3. while ($row = mysql_fetch_array($results)) {
  4. echo "<tr>";
  5. extract($row);
  6. $prod = "SELECT * FROM produkty " .
  7. "WHERE produkty_id='$tymczasowa_prod_id'";
  8. $prod2 = mysql_query($prod);
  9. $prod3 = mysql_fetch_array($prod2);
  10. extract($prod3);
  11. echo "<td>
  12. <form method=\"POST\" action=\"modcart.php?action=change\">
  13. <input type=\"hidden\" name=\"modified_hidden\"
  14. value=\"$tymczasowa_ukryty\">
  15. <input type=\"text\" name=\"modified_quan\" size=\"2\"
  16. value=\"$tymczasowa_ilosc\">";
  17. echo "</td>";
  18. echo "<td>";
  19. echo "<a href=\"getprod.php?prodid=" . $produkty_id . "\">";
  20. echo "MINIATURKA</a></td>";
  21. echo "<td>";
  22. echo "<a href=\"getprod.php?prodid=" . $produkty_id . "\">";
  23. echo $produkty_nazwa;
  24. echo "</a></td>";
  25. echo "<td align=\"right\">";
  26. echo number_format($produkty_cena, 2);
  27. echo "</td>";
  28. echo "<td align=\"right\">";
  29. // oblicz łączną cenę za produkt
  30. $extprice = number_format($produkty_cena * $tymczasowa_ilosc, 2);
  31. echo $extprice;
  32. echo "</td>";
  33. echo "<td>";
  34. echo "<input type=\"submit\" name=\"Submit\"
  35. value=\"Zmień liczbę sztuk\">
  36. </form></td>";
  37. echo "<td>";
  38. echo "<form method=\"POST\" action=\"modcart.php?action=delete\">
  39. <input type=\"hidden\" name=\"modified_hidden\"
  40. value=\"$tymczasowa_ukryty\">";
  41. echo "<input type=\"submit\" name=\"Submit\"
  42. value=\"Usuń produkt\">
  43. </form></td>";
  44. echo "</tr>";
  45. // dodaj ceny łączne poszczególnych produktów
  46. $total = $extprice + $total;
  47.  
  48. }
  49. ?>
  50. <tr>
  51. <td colspan="4" align="right">
  52. Całkowita kwota:</td>
  53. <td align="right"> <?php echo number_format($total, 2); ?></td>


czy to wina bazy czy w kodzie PHP zmienna $total nie może poradzić sobie z liczbami powyżej 1000.00

Próbowałem też z
  1. &total = bcadd($extprice, $total);

ale nie pomogło

Gdy zmienna $extprice jest mniejsza od 1000.00 to wszystko działa i
wynik w zmiennej $total jest wyświetlany dobrze,
A gdy zmienna $extprice jest większa od 1000.00 to $total nie dodaje
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ferrero2
post
Post #2





Grupa: Zarejestrowani
Postów: 171
Pomógł: 32
Dołączył: 5.08.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Nie wiem co to za baza, ale (7,2) może oznaczać, że 7 znaków, z czego 2 po przecinku (IMG:style_emoticons/default/smile.gif)
Dodaj sobie dwie wartości w PHP nie korzystając z SQL i wyświetl.
Potem dodaj sobie dwie wartości w bazie poprzez testową kwerendę.

Trudno powiedzieć nie znając serwera baz danych i jej konfiguracji.
Na pewno nie jest to wina zmiennej, bo php sam dostosowuje sobie rodzaj zmiennej jeżeli jej na stałe nie zadeklarujesz wcześniej.

Pozdrawiam
MW
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 05:23