Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

php | mysql problem

[es] :: PHP :: php | mysql problem

[ Pregleda: 2605 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

petar222

Član broj: 228989
Poruke: 9
79.101.219.*



Profil

icon php | mysql problem06.09.2009. u 20:35 - pre 177 meseci
Imam sledeci problem. Imam tabelu tb_countries koja broji posete iz raznih zemalja. Struktura tabele je ovakva:
id serbia croatia bosnia romania russia bulgaria italia ....
1 25 8 6 17 13 19 16
2 13 19 17 23 12 25 10
.......................
Sad hocu da izvucem npr 5 zemalja sa najvise poseta za odredjeni id.
Primer za id 1:
$zemlja_1 - da sadrzi naziv zemlje sa najvise poseta (u ovom slucaju Serbia)
$zemlja_2 - bulgaria
$zemlja_3 - itd.
$zemlja_4
$zemlja_5
i da imam definisane varijable
$posete_1 - koja ce sadrzati broj poseta za prvu zemlju na listi (u ovom slucaju 25)
$posete_2 - 19
$posete_3 - itd.
$posete_4
$posete_5

Hvala unapred!


 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: php | mysql problem06.09.2009. u 21:10 - pre 177 meseci
Au, pa nije valjda da imaš nazive zemalja kao kolone te tabele... Definitivno nisi dobro osmislio tu tabelu. Jel' možeš malo detaljnije da opišeš kako si zamislio to brojanje poseta, odnosno, kako ono funkcioniše? Šta recimo predstavlja taj jedan unos u tabeli?
 
Odgovor na temu

peromalosutra
Ivan Rajkovic
Software engineer
Luxoft
Berlin

Član broj: 54774
Poruke: 871
*.teol.net.



+148 Profil

icon Re: php | mysql problem06.09.2009. u 22:23 - pre 177 meseci
Nikola je u pravu, nije jasno kako si zamislio da to brojanje radi, a i organizacija tabela nije bas najspretnija. Bolje bi bilo da imas dve tabele:

Tabela drzave
Code:

id   ime_drzave


I druga tabela, posjete:
Code:

id id_drzave


U tabelu posjeta mozes zapisati i dodatne informacije (IP, vrijeme posjete, itd). Zatim da bi nasao ukupan broj posjeta iz odredjene drzave napises nesto kao
Code:
SELECT COUNT(*) FROM posjete WHERE id_drzave=$idd GROUP BY id_drzave


Prednost ovakvog nacina je sto lako mozes dodati nove drzave kasnije, a i daleko je laksi za pretragu po raznim kriterijumima.

 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
91.148.89.*

Sajt: norway.dakipro.com


+190 Profil

icon Re: php | mysql problem07.09.2009. u 14:55 - pre 177 meseci
A mozda da bude jedna tabela ovako:
id | drzava | br_poseta
?
Mislim da je kudikamo bolje samo uraditi update set br_poseta = br_poseta +1 where id = $id na svaku posetu drzave, a pogotovo deo oko vadjenja rezultata bi trebao biti itekako brzi, nema joina, counta i group-a.
Posle je samo Select from drzave br_poseta order by br_poseta desc limit 5

 
Odgovor na temu

peromalosutra
Ivan Rajkovic
Software engineer
Luxoft
Berlin

Član broj: 54774
Poruke: 871
*.teol.net.



+148 Profil

icon Re: php | mysql problem08.09.2009. u 16:31 - pre 177 meseci
Tako bi sigurno bilo brze, ali onda ne bi mogao da pamti detalje o posjetiocima. Sve zavisi sta mu vise odgovara, ako je samo broj posjeta, prijedlog u postu iznad je bolji, a ako zeli da izvuce i neke dodatne informacije onda svaka posjeta mora da bude novi unos u tabeli. Moze cak i kombinacija ova dva rjesenja, pa bi se broj posjeta updejtovao kao sto je dakipro predlozio, dok bi za neke dodatne statistike o posjeti koristili podaci iz druge tabele.

 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
91.148.82.*



+13 Profil

icon Re: php | mysql problem09.09.2009. u 08:19 - pre 177 meseci
Jedna tabela:

Citat:
dakipro:
id | drzava | br_poseta


Druga tabela (detalji o posetiocima):

Citat:

posetioci:

id | fk_drzava_id | posetilac_ip | posetilac_neki_drugi_info_......


* Ako mu treba ukupan broj poseta iz jedne drzave:

Code:

"SELECT * FROM drzave WHERE id = XX"


* Ako treba ukupan broj poseta + neki dodatni info o pojedinacnim posetiocima:

Code:

"SELECT drzave.* FROM drzave INNER JOIN posetioci ON posetioci.fk_drzava_id = drzava.id WHERE drzava.id = XX"


To bi bilo to, ne ? :-)

EDIT:

Prvih 5 zemalja po broju poseta:

Code:

"SELECT * FROM drzave WHERE id = XX ORDER BY br_poseta DESC LIMIT 5"
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-2.sezampro.yu.



+33 Profil

icon Re: php | mysql problem09.09.2009. u 09:19 - pre 177 meseci
A mi sve tako diskutujemo, a ovaj koji je otvorio temu nikako da se javi...
 
Odgovor na temu

petar222

Član broj: 228989
Poruke: 9
91.150.106.*



Profil

icon Re: php | mysql problem09.09.2009. u 14:34 - pre 177 meseci
Citat:
Nikola Poša: A mi sve tako diskutujemo, a ovaj koji je otvorio temu nikako da se javi... :)

Samo vi diskutujte :D

Citam ja odgovore, nego me mrzi da trazim sifru za login :)

Nego da se vratim na temu...
Problem je u tome sto svaki red broji posete za jedan sajt. Pa sam mislio sa update da dodajem posete za svaki sajt pojedinacno. Ne radi se samo o jednom sajtu. Dakle, update table where id=1 , pa ako je neki drugi sajt u pitanju update table where npr. id=5 itd.


 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: php | mysql problem09.09.2009. u 15:25 - pre 177 meseci
U tom slučaju, ti sad npr. možeš u ovu tabelu koju je Dalibor predložio da dodaš još jednu kolonu - sajt_id, ovako nešto:

id | sajt_id | drzava | br_poseta

... pri čemu bi id i sajt_id činili dvostruki primarni ključ.

Tako bi recimo išlo ako informacije o sajtovima držiš u nekoj odvojenoj tabeli. E ja sad ne znam da li ti već unapred imaš neki listing država, ili jednostavno taj podatak dobijaš nekim sistemom za utvrđivanje države na osnovu IP adrese posetioca.

A ti sad možeš i da zakomplikuješ stvari, pa da informacije o posetama (država, grad, ip adresa, itd.) držiš u jednoj tabeli, a da ti neka druga služi za čuvanje informacija o broju poseta (poseta_id, sajt_id, broj_poseta),
 
Odgovor na temu

[es] :: PHP :: php | mysql problem

[ Pregleda: 2605 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.