Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Tagi - struktura bazy danych i pobieranie kilku wartości
arek33
post
Post #1





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 24.02.2009

Ostrzeżenie: (0%)
-----


Witam ponownie,
Przeczesałem wczoraj połowę internetu, ale problem nadal jest na podobnym poziomie na jakim był przed rozpoczęciem poszukiwań. Sprawa dotyczy się systemu dodawania newsów i słów kluczowych (tagów).

Struktura bazy wyglądać będzie następująco(?):

news:
- id_news
- tytul
- tresc
- data
- autor
- id_tags (?)

tagi:
- id_tags
- tag

tagi_news
- id_tags (int?)
- id_news

Proszę o kompetentną osobę czy powyższa struktura jest prawidłowa czy może warto coś dodać/zmienić?

Przykład wyświetlania artykułu (news):
Tytuł: Nowy wpis
Treść: Lorem ipsum...
Data: Dzisiaj o 19:11
Autor: Admin
Tagi: nowy wpis, lorem ipsum, lorem

Jak widać w powyższym przykładzie chcę użyć 3+ słów kluczowych, niemniej jednak nie wiem jak się za to zabrać.

Ad1. Przede wszystkim zależy mi na opinii czy struktura bazy danych jest odpowiednia?
Ad2. Mając przypisane:

id_tags = 1
tag = nowy wpis

id_tags = 2
tag = lorem ipsum

id_tags = 3
tag = lorem

Jak wpisać wszystkie 3 do id_tags z tabeli news? Rozumiem, że relacja zachodząca pomiędzy tabelami to jeden do wielu, niemniej jednak nadal nie mam odpowiednich wskazówek do satysfakcjonującego mnie rozwiązania. Z góry dziękuję za pomoc, linki do artykułów, które będą mi w stanie pomóc oraz pozostałe cenne wskazówki.

Arek
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dziamber
post
Post #2





Grupa: Zarejestrowani
Postów: 57
Pomógł: 18
Dołączył: 15.04.2009
Skąd: Kwidzyn

Ostrzeżenie: (0%)
-----


Ja bym zrobił to tak:

  1. news:
  2. - id_news
  3. - tytul
  4. - tresc
  5. - DATA
  6. - autor
  7. - tags


  1. tags:
  2. - id
  3. - nazwa


I np. jak masz trzy tagi w newsie to trzymasz ich id oddzielone przecinkami, a jak chcesz je wyciągnąć to coś w stylu:

  1. # pobierasz dane z bazy
  2. $tagi = $dane_z_bazy->tags;
  3. $tagi = explode(",", $tagi);
  4. $ile_tagow = count($tagi);
  5. $jest = 0;
  6. while($jest <= $ile_tagow) {
  7. echo $tagi[$jest];
  8. $jest++;
  9. }
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 05:23