[ kazil @ 21.01.2008. 10:38 ] @
sorry ljudi, bolji naziv teme ne znam smisliti... ako neko zna, nek promeni.

ovako. u tabeli tekstovi, imam polje tagovi u kojem su upisani brojevi odvojeni zarezom. npr: (27,32,48...). svaki broj se moze pojaviti kod svakog teksta. kako da sklopim SELECT query koji ce mi izlistati sve zapise koji u 'tagovi' polju sadrzi broj recimo 27? ajde da bude mozda shvatljivije:

id 1
tekst foo
tagovi 2,6,12,88

id 2
tekst bar
tagovi 4,7,55

id 3
tekst dummy
tagovi 3,5,12,66

kako da izlistam zapise koji u polju 'tagovi' sadrze broj 12? inace brojeve koje upisujem su u jednom nizu, i ondak samo upisem taj niz. mozda mi je vec i tu greska, mozda trebam na neki drugi nacin da resim upis, da bi mi laksi bio ispis?

inace, dosad samo pokusavao tipa: SELECT * FROM tabela WHERE '$promenljiva' IN (tagovi) ali mi nije davalo nista.

e da. tagovi je tipa varchar, nisam znao nista pametnije da stavim. ako ima nesto bolje, recite.

thx :)

edit: blah... select * from tabela where tagovi like '%$promenljiva%'. problem resen.

[Ovu poruku je menjao kazil dana 21.01.2008. u 15:41 GMT+1]
[ BigFoot @ 21.01.2008. 23:50 ] @
Jesi li probao sa tagovi 2,6,125,250 i tražio 25 ili tagovi 2,12,16, 62,86 i tražio 6?
[ kazil @ 22.01.2008. 08:54 ] @
au vidis, nisam... znaci da moje resenje ne valja i da moj problem nije resen... damn. inace znao bih da resim sa 2 upita i php-om, ali sam mislio da resim ako je nekako moguce sa jednim upitom. ajde, ako neko ima neki predlog, bio bih mu zahvalan :)
[ BigFoot @ 22.01.2008. 13:27 ] @
Probaj ovako:
Code:
SELECT * FROM tabela WHERE tagovi LIKE '%,$promenljiva,%' OR tagovi LIKE '$promenljiva,%' OR tagovi LIKE '%,$promenljiva'

Nije baš elegantno, ali bi trebalo da radi
[ kazil @ 22.01.2008. 14:20 ] @
pa da! ogranicim se sa zarezima! big thanks BigFoot :)
[ stsung @ 23.01.2008. 20:41 ] @
Pozd.

Ovo je zaista dosta losha ideja - shto veca tabela ovo ce raditi sve duzhe, jer ce svaki put morati da uradi fullscan. Ono shto sam samo hteo napomenuti, je da ovim upitom nije obradjena situacija ako u tagovima postoji samo jedan broj (znachi nema zareza). Ili dodati ovu varijantu u upit, ili paziti da se u polju ipak nadje zarez, iako postoji samo jedan broj.

Svako dobro.
[ kazil @ 24.01.2008. 15:47 ] @
Pocinje sve manje da mi se svidja ova moja ideja.

Ovako: u prvoj tabeli, 'tagovi', imam id_tag, tag, broj_klikova (to polje je nebitno sada). U drugoj tabeli, 'tekstovi', (opet ne bitno izostavljam), polja: id_tekst, tekst, tagovi.

id-ovi su auto-increment u obe tabele, naravno. u tekstovi.tagovi stavljam id brojeve tagova. Stavljam ih kao string, brojevi su medjusobno odvojeni zarezima (1,3,5,12...). Ocigledno, nije najbolje resenje. Pokusavao sam sa uvodjenjem trece tabele, 'tag_tekst', koja ima 3 polja: id, id_tag, id_tekst. Mislio sam tu da odradim povezivanje tagova i tekstova. To mi je bilo prvo resenje celog problema, samo sam od njega relativno brzo odustao, jer, ukoliko trebam da promenim neki zapis (za id_tekst=6 treba id_tag=5 a ne id_tag=4), cinio mi se komplikovanim taj update (ne znam zasto, u tom trenutku mi je izgledalo komplikovano). Imate neki predlog kako da odradim ovo? Da se vratim na resenje sa tri tabele, da ostanem na trenutnom, ili imate neki bolji predlog za mene?

thx :)