Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> problem z polem float, gubienie danych w bazie
adif
post 19.01.2006, 10:43:38
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 12.06.2005

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


Witam wszystkich i ratunku!!!

Oto zrzut jednej z tabel przechowującej ceny produktów:
  1. CREATE TABLE `produkty` (
  2. `id` int(10) NOT NULL AUTO_INCREMENT,
  3. `kategorie_id` int(10) NOT NULL DEFAULT '0',
  4. `cena` float(4,2) NOT NULL DEFAULT '0.00',
  5. `katalog` varchar(64) DEFAULT NULL,
  6. `data_dodania` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  7. PRIMARY KEY (`id`)
  8. );

Kopałem trochę w manualu mysql ale do końca nie znalazłem odpowiedzi dlatego proszę was o pomoc.

Problem polega na tym że jak wpisuję ceny do bazy danych: czy to poprzez phpmyadmin czy z poziomu php okazuje się że są źle przechowywane. Zauważyłem że przy cenach większych niż 99.99 tzn. 3 cyfrowych i więcej baza gubi dane i zamienia wszystkie pozycje na 99.99.

Czyli jeśli wpisałem do bazy liczbę 150.33 to po jakimś czasie została ona zresetowana do liczby 99.99.

Nie jestem pewien czy tylko robi to w tym przypadku ale w każdym bądź razie przy określeniu pola 'cena' jako float(4,2) coś jest nie tak.

W czym jest rzecz? Pomocy!!!

P.S. W jaki sposób ( jaki typ pola ) najlepiej przechowywać dane z cenami jakichś produktów np. w sklepie??

pozdrawiam
Go to the top of the page
+Quote Post
nospor
post 19.01.2006, 10:54:26
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html
Cytat
MySQL allows a non-standard syntax: FLOAT(M,D) or REAL(M,D) or DOUBLE PRECISION(M,D). Here, “(M,D)” means than values are displayed with up to M digits in total, of which D digits may be after the decimal point.

czyli pierwsza liczba oznacza ilosc wszystkich cyfr, a nie ilsoc cyfr przed kropką smile.gif

ps: takie kwiatki wychodzą jak ktoś ma niechęć do manuala winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
adif
post 19.01.2006, 11:01:54
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 12.06.2005

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


W d...

Wielkie dzięki Nospor. kolejny raz pomogłeś mi.

Najlepsze jest to że na Mysql w wersji poniżej 4 wszystko jest ok. Teraz sprawdziłem że u mnie na localhost mam wersję 3.23.49, a na serwerze jest 4.0.24.

Czyli znowu zmiany w wersji Mysql spowodowały u mnie błędy, a nie dawno przenosiłem bazy na inny serwer i nie podejrzewałem że może być taki problem.


pozdrawiam i jeszcze raz dzięki
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 02:18