Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Vijest koja ima više vezanih kategorija (spremanje, izvlačenje i ispitivanje)

PHP
  • 5 odgovora
  • 2.266 pregleda

Najnovija ↓

Vijest koja ima više vezanih kategorija (spremanje, izvlačenje i ispitivanje) 16.02.2009. u 22:10 · pre 215 meseci #1
U svom cms-u želio bih izvesti da jedna vijest može imati više vezanih kategorija. U mysql-u sam predvidio dvije tablice, jednu s atributima vijesti, a drugu koja bi sadržavala id_vijesti i id vezanih kategorija.
Polje id_vezane_kategorije napunio bih sa nekoliko id-eva, a kod čitanja vezanih vijesti za neku kategoriju izvukao bih taj array iz baze te usporedio sadrži li vrijednost id kategorije koja se traži.
Zanima me koliko je to efikasno i brzo, te postoji li bolji način?
Možda primjerice da se u samom sql upitu odaberu vijesti koje u polju id_vezane_kategorije sadrže vrijednost tražene kategorije? (pomoću LIKE??)
Ispričavam se što sam topic smjestio u php podforum iako se dijelom tiče mysql-a.
Re: Vijest koja ima više vezanih kategorija (spremanje, izvlačenje i ispitivanje) 16.02.2009. u 22:30 · pre 215 meseci #2
Dobar je prvi deo sa dve tabele, a posle je potrebno samo uraditi JOIN tabele vesti i tabele sa vezama po idju vesti, pa pitati uz pomoc WHERE category_id = x.
Tako ces spojiti tabelu vesti i tabelu sa vezama, i moci da postavis uslov da se listaju samo vesti iz odredjene kategorije.
Isto to samo join po idju kategorija kad za odredjenu vest vadis kojim kategorijama pripada. Znaci onda ide join po categoryID sa tabelom za kategorije, a WHERE news_id = y
Potpis
http://norway.dakipro.com/
Re: Vijest koja ima više vezanih kategorija (spremanje, izvlačenje i ispitivanje) 16.02.2009. u 22:35 · pre 215 meseci
izmenjeno 1 put, poslednji put Nikola Poša 16.02.2009. u 22:48
  1. Nikola Poša16.02.2009. u 22:48zapis iz teksta poruke
#3
A mozhe i:
Code:

SELECT naslov, vest
FROM vesti
WHERE id IN
(
   SELECT id_vesti
   FROM vesti_kategorija
   WHERE id_kategorija = $kat_id
)

Izmishljao sam nazive kolona, ali chisto da vidish princip. A to $kat_id je kao neka promenljiva koju ubacujesh iz PHP-a, i koja odredjuje kategoriju...

Ovo mozhe da prodje pod uslovom da ti na osnovu kategorije ispisujesh vesti u nekim delovima sajta, pa tako jedna vest mozhe da se pojavi na vishe mesta, poshto pripada u vishe kategorija...
Re: Vijest koja ima više vezanih kategorija (spremanje, izvlačenje i ispitivanje) 16.02.2009. u 22:52 · pre 215 meseci #4
hvala na odgovorima,
zanima me hoće li stvar funkcionirati ako u polje gdje je spremljena kategorija vijesti ubacim više id-a? time bih izbjegao da ukoliko se neka vijest veže na n kategorija da se onda kreira n zapisa, već bi se kreirao jedan zapis sa n vrijednost u polju kategorija?
Re: Vijest koja ima više vezanih kategorija (spremanje, izvlačenje i ispitivanje) 17.02.2009. u 12:31 · pre 215 meseci #5
Pa mogao bi i tako, samo ti onda uopshte ne treba ta pomocna tabela za povezivanje vesti i kategorija. Trebao bi samo da u tabelu vesti dodash polje, npr. id_kategorije, koje bi bilo tipa SET, i u njemu bi stavljao sve id-eve kategorija za koje je ta vest vezana, u ovakvom formatu - 1, 2, 7, 12. A i upit bi onda izgledao malo drugachije...

Mada ne znam zashto bi to radio, to bi posle bilo mnogo tezhe za odrzhavanje i azhuriranje te tabele...

I da, ovu temu si trebao da postavish u MySQL forum... :)
Re: Vijest koja ima više vezanih kategorija (spremanje, izvlačenje i ispitivanje) 17.02.2009. u 13:45 · pre 215 meseci #6
Ispričavam se na krivom postanju,
isprva me zanimalo kako povući to polje id_kategorije u koje je upisano n kategorija i upotrijebiti ga za izlistavanje vijesti vezanih uz neku kategoriju. Radit ću kako ste i predložili, puno je jednostavnije i jasno mi je kako treba raditi, međutim mislio sam da će ovaj drugi način biti 'elegantniji' i možda brži.
Hvala, i javim se ako zapnem ;)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme