cPanel, myPHPadin i baze podataka
Select messages from
# through # FAQ
[/[Print]\]

Forum@DeGiorgi -> Računala (općenito)

#1: cPanel, myPHPadin i baze podataka Autor/ica: SafLokacija: Zagreb PostPostano: 19:50 pon, 30. 1. 2012
    —
Helo, imam problem sa upravljanjem bazom podataka, naime radim na jednom comparison siteu i imam ogromnu baz proizvoda koje uspoređujem po raznim kriterijima.

Tablice u bazi sadrže decimalne brojeve sa ","

Prvo što sam primjetio je da se podatci na siteu (ali i u myPHPadminu) sortiraju leksikografski a ne numerički, ali taj problem smo rješili (barem djelomično)

Ono što me sada muči je to što mi se čini da engine "prepoznaje" broj ali samo do decimalnog zareza "," i da sortira samo cjelobrojne djelove, a ne i dio iz decimale

E sad, kako natjerati bazu da "prepozna" zarez kao decimalni i da je to ustvari decimalni broj?

Tenx

#2:  Autor/ica: vsegoLokacija: /sbin/init PostPostano: 20:54 pon, 30. 1. 2012
    —
Jesi siguran da je taj stupac tipa neki broj (decimal, numeric, float, double), a ne nesto textualno (npr. varchar)?

Naime, ne vidim kako bi decimalni broj sa zarezom koristio u izrazima. Sto bi vratilo select 17,19;? Dva cjelobrojna ili jedan realni stupac?

Ako ispadne da je stupac textualnog tipa, onda ga prebaci na realni (postoji sansa da ti se kojesta raspadne, pa prvo napravi backup).

Alternativno, mozes umjesto
select x ...
raditi
select replace(x, ",", ".") ...
(nisam siguran treba li mnoziti s necim, da postane broj).

Ovo "rjesenje" je lose, jer svaki zahtjev radi gomimlu nepotrebnog posla i opterecuje server.

#3:  Autor/ica: SafLokacija: Zagreb PostPostano: 11:32 sri, 1. 2. 2012
    —
hmmm... da, sad se nameće slijedeći problem. Naime, koliko vidim stupac (a radi se o meta_key stupcu je definiran kao varchar(255)), pa zato vjerojatno ovaj problem sa decimalnim brojevima (iako i tako definiran stupac mogu sortirati numerički a ne leksikografski)

E sad, s obzirom da u istoj tablici imam u meta_key stupcu i numeričke i tekstualne unose, a trebam sortirati samo numeričke vrijednosti, što bi se dogodilo kada bi cijeli taj stupc definirao kao decimal? Što bi se dogodilo sa tekstualnim unosima u tom slučaju? Jel bi ostao kakav je ili bi se dogodio neki NaN?

I dalje mi nije jasno, a googlam već 5 dana jel ima ikakve veze dali je broj spremljen kao 10,99 ili 10.99?

Edit: općenito me užasno muči korištenje "," i "." na računalu. Naime, nevjerojatno mi je da neki alati (npr. OpenOffice Table, OpenOffice Database, Excel, pa čak i built in MS Calculator) po defaultu koriste "," u decimalnim brojevima, a s druge strane alati kao wolframalpha koriste "."

E sad, istražujem danima i zapravo ne mogu naći pravilo, naime i Wikipedia kaže da korištenje "." ili "," ovisi o državi, pa tako za Hrvatsku kaže da se koristi i jedno i drugo Zelena banana (konacno jedna normalna) (http://en.wikipedia.org/wiki/Decimal_mark)
...

Ako ću trebati mijenjati sve "," u ".", jel pametno exportati tablicu, otvoriti je u npr Excelu i napraviti Replace "*,**" with "*.**"?

#4:  Autor/ica: vsegoLokacija: /sbin/init PostPostano: 13:56 sri, 1. 2. 2012
    —
Saf (napisa):
E sad, s obzirom da u istoj tablici imam u meta_key stupcu i numeričke i tekstualne unose, a trebam sortirati samo numeričke vrijednosti, što bi se dogodilo kada bi cijeli taj stupc definirao kao decimal? Što bi se dogodilo sa tekstualnim unosima u tom slučaju? Jel bi ostao kakav je ili bi se dogodio neki NaN?


Sigurno ne bi ostali podaci (za pocetak, bilo bi premalo memorije za text, jer je decimal poprilicno mala stvar).

Saf (napisa):
I dalje mi nije jasno, a googlam već 5 dana jel ima ikakve veze dali je broj spremljen kao 10,99 ili 10.99?


Ima. Razlika je kako ga cast-a: "10,99"+0 = 10, "10.99"+0 = 10.99.

Saf (napisa):
Edit: općenito me užasno muči korištenje "," i "." na računalu. Naime, nevjerojatno mi je da neki alati (npr. OpenOffice Table, OpenOffice Database, Excel, pa čak i built in MS Calculator) po defaultu koriste "," u decimalnim brojevima, a s druge strane alati kao wolframalpha koriste "."


WolframAlpha je matematicki software i on koristi matematicku notaciju. Ostali ovise o drzavnim postavkama, a u hrvatskoj je to zarez kao decimalni separator i tocka kao separator tisucica.

Saf (napisa):
Ako ću trebati mijenjati sve "," u ".", jel pametno exportati tablicu, otvoriti je u npr Excelu i napraviti Replace "*,**" with "*.**"?


Mislim da ne. Napravi replace(...)+0 i sortiraj po tome. Tektovi ce ti se sortirati kao broj 0, a brojevi kud vec spadaju.

Ako to cesto radis, mozda ne bi bilo lose dodati decimal stupac i u njega trpati konvertirane brojeve, pa po tome sortirati. Samo, onda pazi da ti podaci stalno budu konzistentni.

#5:  Autor/ica: SafLokacija: Zagreb PostPostano: 22:56 sri, 1. 2. 2012
    —
Citat:
Sigurno ne bi ostali podaci (za pocetak, bilo bi premalo memorije za text, jer je decimal poprilicno mala stvar).


Da, jasno. Zapravo teksta ima jako malo tipa "n/a"

Hvala!



Forum@DeGiorgi -> Računala (općenito)


output generated using printer-friendly topic mod. Vremenska zona: GMT + 01:00.

Stranica 1 / 1.

Powered by phpBB © 2001,2002 phpBB Group
Theme created by Vjacheslav Trushkin