• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tagowanie - zapisywanie do bazy

Object Storage Arubacloud
0 głosów
107 wizyt
pytanie zadane 2 września 2019 w PHP przez Paproch Użytkownik (700 p.)

Witam,

Walczę z tagowanie wpisów do bazy danych. Wszystko działa, tylko taki problem mi się pojawił. Mianowicie, mam zwykłe pole input w którym user wpisuje tagi i cały ten string zapisuje sie w bazie. User może wpisać co chce, może wpisać np. w taki sposób #tag, tag1 tag2 #tag3 i cały ten string leci do bazy. No i tu pojawia się problem jak to przefiltorwać do jednej formy np. do #tag, #tag1, #tag3 itd. No i czy w ogóle zapisywanie tego w jednej komórce w bazie jest dobrym pomysłem, czy lepie każdy tag w oddzielnej komórce? Macie może jakieś sprawdzone metody tagowania wpisów? 

taki kod mam. Tabela w bazie ma trzy kolumny id-nazwa-tagi

Dodaj #tag (opcjonalnie)<input type="text" name="tagi">
$queryTag=$db->prepare('INSERT INTO tagi VALUES (NULL, :nazwa, :tagi)');
$queryTag->bindValue('nazwa', $_POST['nazwa'], PDO::PARAM_STR);
$queryTag->bindValue('tagi', $tagi, PDO::PARAM_STR);
queryTag->execute();

Pozdrawiam

1 odpowiedź

0 głosów
odpowiedź 2 września 2019 przez adrian17 Ekspert (344,860 p.)
wybrane 2 września 2019 przez Paproch
 
Najlepsza

w taki sposób #tag, tag1 tag2 #tag3

W zależności od tego jak wolisz UX, to będą albo dwa tagi "#tag, tag1 tag2" "#tag3" albo cztery jak napisałeś. Ale tak, wypada to zamienić przed wrzuceniem do bazy. Można też na poziomie interfejsu od razu pokazać pisane tagi.

No i czy w ogóle zapisywanie tego w jednej komórce w bazie jest dobrym pomysłem, czy lepie każdy tag w oddzielnej komórce?

Każdy osobno. Jedna rzecz ma wiele tagów, jeden tag może dotyczyć wielu rzeczy -> podręcznikowa relacja wiele do wiele.

(alternatywnie można użyć nie-relacyjnych ficzerów bazy danych, np array/hstore w postgresie)

komentarz 2 września 2019 przez Paproch Użytkownik (700 p.)
No muszę przyznać Tobie rację że każdy osobno to jest dobre rozwiązanie. Tylko mam taki jeden problem, za bardzo nie mam pojęcia jak się za to zabrać. No bo jak zczytywać pojedyncze tagi, dzielić stringi uzywajac explode? No i sama struktura bazy, jakos nie mam pomysłu jak to zaprojektować. No ale dzięki za podpowiedzi idę myśleć dalej.

Pozdrawiam
komentarz 2 września 2019 przez adrian17 Ekspert (344,860 p.)

No bo jak zczytywać pojedyncze tagi, dzielić stringi uzywajac explode?

Na przykład.

Albo użyć biblioteki po stronie JSa (co przy okazji będzie czytelniejszym dla usera), np pierwsza z brzegu https://github.com/yairEO/tagify

No i sama struktura bazy, jakos nie mam pomysłu jak to zaprojektować.

Przez "podręcznikowa relacja wiele do wiele" miałem to na myśli dosłownie :) Poczytaj jak się robi relacje wiele do wiele, jest na to standardowy sposób z dodatkową tabelą pośrednią.

Podobne pytania

0 głosów
0 odpowiedzi 84 wizyt
pytanie zadane 20 września 2019 w PHP przez niezalogowany
+1 głos
1 odpowiedź 303 wizyt
pytanie zadane 12 września 2021 w PHP przez NoteDS Użytkownik (560 p.)
0 głosów
1 odpowiedź 318 wizyt
pytanie zadane 19 grudnia 2018 w PHP przez patrick167 Początkujący (260 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...