Forum FAQForum FAQSearchSearch MemberlistMemberlist Forum ignore listForum ignore list RegisterRegister ProfileProfile Log in to check your private messagesLog in to check your private messages Log inLog in
PHP/MySQL/programerska logika - mala zavrzlama

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    mi3dot.org Forum Index -> Server-side
View previous topic :: View next topic  
Author Message
lekke



Joined: 17 Jun 2004
Posts: 860
Location: 25th floor

PostPosted: 30.11.2005 12:28    Post subject: PHP/MySQL/programerska logika - mala zavrzlama Add user to your forum ignore list Reply with quote

Tablica u MySQL bazi.
Polja: vijest, vrijeme objave, kategorija.

Izvlacim van sljedece:
- Zadnjih X objavljenih vijesti
- Zadnjih Y objavljenih vijesti po svakoj kategoriji, a da nisu izvucene u gornjih X vijesti

Vrijednosti X i Y doista nisu bitne za cijelu pricu.

E sad... problem je kako logicki to izvesti. Najvise bih volio da mogu stvar rijesit jednim queryjem, naprimjer koristeci "NOT IN" al MySQL jos nije dogurao do faze da se u subqueryima moze koristiti LIMIT a i operand u subq. moze sadrzavati samo 1 stupac*.

* htio sam imati id za usporedjivanje i vrijeme za soritranje. ne bih se usudio dohvacati samo vrijeme pa usporedjivati vremena objave vijesti, to ne smatram rock solid solucijom..

Ima'l ko kakvije ideja kud da to usmjerim? Cini mi se totalno blesavo radit petlju kroz koju cu provlacit jednu kategoriju at a time

_________________
You need more bass.
Back to top
View user's profile Send private message
retro_one



Joined: 16 Sep 2003
Posts: 880
Location: DUBRAVA.

PostPosted: 30.11.2005 12:39    Post subject: Add user to your forum ignore list Reply with quote

hm...ja bi to najjednostavnije rjesio tak da prodjem kroz prvi recordset, pocupam id-eve i na temelju njih kreiram where uvjet za drugi kveri.

_________________
Just your average eccentric programmer.
Back to top
View user's profile Send private message
Sulien



Joined: 04 Jan 2004
Posts: 2905
Location: Zagreb

PostPosted: 30.11.2005 12:40    Post subject: Add user to your forum ignore list Reply with quote

Što ja znam, izvuci X i dohvati nihove ID-ove u array XID

Nakon toga dohvati Y uz uvjet WHERE id <> XID[0] OR id <> XID[1] ... (naravno nećeš ručno traversat array nego ćeš ga implodeat ili neš)

Druga solucija bi bila ona koju će reć netko drugi i koja je 100 puta bolja od ove moje. Nisam više toliko u MySQL-u da se sjećam koje sve kombinacije idu a koje ne idu kod naprednijih subquery-a i sl.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
retro_one



Joined: 16 Sep 2003
Posts: 880
Location: DUBRAVA.

PostPosted: 30.11.2005 12:42    Post subject: Add user to your forum ignore list Reply with quote

mislim da fakat nema potrebe za subqueryem posto iovak radi prvi kveri...KISS

_________________
Just your average eccentric programmer.
Back to top
View user's profile Send private message
lekke



Joined: 17 Jun 2004
Posts: 860
Location: 25th floor

PostPosted: 30.11.2005 13:03    Post subject: Add user to your forum ignore list Reply with quote

Sulien wrote:
Što ja znam, izvuci X i dohvati nihove ID-ove u array XID

Nakon toga dohvati Y uz uvjet WHERE id <> XID[0] OR id <> XID[1] ... (naravno nećeš ručno traversat array nego ćeš ga implodeat ili neš)

Druga solucija bi bila ona koju će reć netko drugi i koja je 100 puta bolja od ove moje. Nisam više toliko u MySQL-u da se sjećam koje sve kombinacije idu a koje ne idu kod naprednijih subquery-a i sl.


OK, svi ste odgovorili na ovaj nacin, a i to mi je palo napamet, no stvar je u tome da u startu ima bar 5 kategorija i da taj broj moze rasti. Nekak mi je banana radit iteracije pa imat usporedbe za svaku kategoriju. [add] To je zlo po CPU a i na kraju response time od websitea.[/add]

Ovom cu rjesenju pribjec samo ako ne uspijem ispametovat neko rjesenje u obliku (niza) queryja.

_________________
You need more bass.
Back to top
View user's profile Send private message
retro_one



Joined: 16 Sep 2003
Posts: 880
Location: DUBRAVA.

PostPosted: 30.11.2005 13:21    Post subject: Add user to your forum ignore list Reply with quote

where uvjet kreiras jednom i koristis u svakom od tih kverija. ne kuzim kaj je tu zahtjevno za CPU?

_________________
Just your average eccentric programmer.
Back to top
View user's profile Send private message
lekke



Joined: 17 Jun 2004
Posts: 860
Location: 25th floor

PostPosted: 30.11.2005 13:58    Post subject: Add user to your forum ignore list Reply with quote

retro_one wrote:
where uvjet kreiras jednom i koristis u svakom od tih kverija. ne kuzim kaj je tu zahtjevno za CPU?


Evo, rijesio na taj nacin. Ma, racunam da je processing 6 querya (za 5 kategorija) na razlicitim mjestima u kodu puno neefikasniji nacin osim poslat jednog upita na bazu i prikazat rezultat.

Hvala svima na inputu!!

_________________
You need more bass.
Back to top
View user's profile Send private message
nel`chee



Joined: 08 Jul 2004
Posts: 2087
Location: Rijeka

PostPosted: 30.11.2005 15:26    Post subject: Add user to your forum ignore list Reply with quote

server-side Arrow

_________________
art & design portfoliofree Photoshop brushes stuffsketchblogfacebook
Back to top
View user's profile Send private message Visit poster's website Twitter profile
carr



Joined: 13 Nov 2003
Posts: 1397
Location: Karlovac

PostPosted: 30.11.2005 15:33    Post subject: Add user to your forum ignore list Reply with quote

- ak sam dobro shvatio ti zelis prvih X i ovih ostalih Y sve dobiti u JEDNOM RECORDSETU?
- imas podatke koliko kategorija ima i koje su njihovi ID-evi prije nego sta saljes taj query?

_________________
Bolje biti malo lud, nego malo pametan.
Back to top
View user's profile Send private message Visit poster's website
Sulien



Joined: 04 Jan 2004
Posts: 2905
Location: Zagreb

PostPosted: 01.12.2005 18:09    Post subject: Add user to your forum ignore list Reply with quote

Ma neće jedan recordset, ali hoće optimizirat za brzinu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    mi3dot.org Forum Index -> Server-side All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group