[ dado_k @ 27.10.2005. 21:50 ] @
dakle ovako imam ovaj upit kod foruma kojeg izrađujem

"SELECT id,naslov FROM forum WHERE kategorija='$k' AND sub_id=0 ORDER BY vrijeme DESC"

ovaj kod šljaka super no imam jedan problem evo da vam malo dočaram situaciju:

sub_id ustvari označava o čemu se radi ukoliko je sub_id=0 riječ je o TEMI a ukoliko je neki drugi broj npr 5 tada je to odgovor na temu kojoj je id=5

e sad šta ja hoću je proširiti ovaj upit tako da se sve poreda po vremenu (kao sada) ALI da se uzmu u obzir i ODGOVORI a ne samo TEME dakle netko dođe na sajt i otvori neku starju temu koja je na dnu liste i odgovori na nju ŽELIM da se ta tema automatski smjesti na vrh (ista stvar je i kod ovog foruma) dakle kako ovo izvesti mislim da se može sa čistim mysql-om al nisam siguran a i nisam takav expert za mysql! hvala svima!
[ SmilieBG @ 27.10.2005. 22:19 ] @
mozda gresim, ali:

"SELECT id,naslov FROM forum WHERE kategorija='$k' ORDER BY vrijeme DESC"

zar to ne bi trebalo da bude to :)

Poz,
Sale
[ dado_k @ 27.10.2005. 22:27 ] @
ije opet tako jednostavno mislim mogu onda sa php-om obraditi rezultate al ja sam namjeravao da mi vrati van samo teme šta ću sa odgovorima kad je to stranica na kojoj se ispisuju teme dobro to sam mislio upotrijebiti ako ne postoji bolje riješenje u svakom slučaju hvala!
[ noviKorisnik @ 28.10.2005. 00:23 ] @
Probaj nešto ovako
Code:
SELECT DISTINCT
    tema.id AS tema_id,
    tema.naslov AS tema_naslov
FROM
    forum AS tema,
    forum AS poruka
WHERE
    tema.kategorija = '$k' AND
    tema.sub_id = 0 AND
    (
        poruka.sub_id = tema.id OR
        poruka.id = tema.id
    )
ORDER BY poruka.vrijeme DESC
LIMIT $od, $do
[ dado_k @ 28.10.2005. 10:06 ] @
ne,neradi nažalost
dakle ovako
i teme i odgovori su u istoj tabeli to je jasno.

al ja van hoću samo dobit teme na osnovu vremena zadnjeg odgovora ili ukoliko nema odgovora onda na osnovu vremena teme
i u temama i u odgovorima uvijek su sva polja popunjena!
dakle imamo
Code:

 id         sub_id         naslov         poruka         autor         vrijeme          kategorija

1         0              nova tema1       poruka          ---              100       nijebitno

2         0            nova tema2       poruka          autor               101         nijebitno


dakle sad bi se posložile ovak najprije bi išla nova tema2 mpa onda nova tema1
sao onim upitom i to je ok
al sad imamo recimo ovo
Code:

 id         sub_id         naslov         poruka         autor         vrijeme          kategorija

1         0              nova tema1       poruka          ---              100       nijebitno

2         0            nova tema2       poruka          autor               101         nijebitno

3         1           re:nova tema1       poruka          autor             105         nijebitno


i sad automatski da mi
bude
nova tema1
nova tema1

jer je odgovor na temu1 postan kasnije nego je postavljena tema2
[ Dejan Topalovic @ 28.10.2005. 10:38 ] @
Meni je struktura te tabele nekako zbunjujuca i ne cini mi se bas efikasnom...
Zasto u sub_id smjestas i id teme i id odgovora? Ja bih to razdvojio i povezao agregatnom tabelom...

Kada bi imao razdvojene ID-ove od tema i odgovora, onda bi mogao da ubacis
Code:
GROUP BY tema_id
ORDER BY vrijeme DESC

u svoj upit...
[ dado_k @ 28.10.2005. 10:49 ] @
[qoute]Zasto u sub_id smjestas i id teme i id odgovora?
[/quote]
ne smještam nikakav id odgovora!
ukoliko je sub_id=0 znam automatski da je riječ o temi a ukoliko nije onda je riječ o odgovoru na temu sa jednakim id-em kao ovaj sub_id!

a sad mi se neda to sve preispravljati puno je to posla! jako puno
nešto konkretno
[ Dejan Topalovic @ 28.10.2005. 10:56 ] @
Cek, cek...
Citat:
ne smještam nikakav id odgovora!
ukoliko je sub_id=0 znam automatski da je riječ o temi a ukoliko nije onda je riječ o odgovoru
Kako ne smjestas, kad si upravo jos jednom potvrdio, da smjestas id zavisno da li je rijec o temi ili odgovoru!?

Konkretno sam ti rekao da odvojis to i da koristis onda GROUP BY. Sta konkretnije jos da ti kazem?

Kazes da ti je to puno posla? To je 10-20 minuta vremena. Da je i par sati, opet ce ti se isplatiti.
Ako si lijen, pa ti se ne da, to je vec druga stvar... Mozda postanu i lijeni, oni koji bi ti mozda dali odgovor...
[ noviKorisnik @ 28.10.2005. 11:08 ] @
ako nećeš da razdvajaš, promeni taktiku... ček malo da ti je pripremim...

update forum set sub_id = id where sub_id = 0

pa ti je sada spisak vodećih poruka teme...

select * from forum where sub_id = id

umesto

select * from forum where sub_id = 0

nije strašna razlika, zar ne?

[Ovu poruku je menjao noviKorisnik dana 28.10.2005. u 12:11 GMT+1]

e da, dalje ne znam :-)

[Ovu poruku je menjao noviKorisnik dana 28.10.2005. u 12:15 GMT+1]
[ jablan @ 28.10.2005. 11:52 ] @
Citat:
noviKorisnik: update forum set sub_id = id where sub_id = 0

Hehe, to je i meni palo na pamet.

Onda će običan GROUP BY sub_id rešiti stvar.
[ dado_k @ 28.10.2005. 18:06 ] @
OK bum probal ovak HVALA noviKorisniče