![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 21.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
Mam tabele
News id nazwa tagi 1 Programowanie 1,3 oraz Tagi id nazwa 1 PHP 2 C 3 Java W jaki sposób wyciągnąć jakie tagi ma News (nazwy tagów)? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 4 Dołączył: 25.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Tagi najpierw dzielisz w PHP za pomocą funkcji explode, a następnie w zapytaniu mysql używasz polecenia JOIN.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Tagi najpierw dzielisz w PHP za pomocą funkcji explode, a następnie w zapytaniu mysql używasz polecenia JOIN. Chyba chodziło Ci o IN Edit: @riczlogan taki sposób przechowywania danych jest dość kiepski. Ten post edytował skowron-line 16.05.2012, 14:15:46 -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 21.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
Czyli coś takiego?
SELECT Tagi.nazwa FROM Tagi, News WHERE News.tagi IN ( $tagi[0], $tagi[1] ); |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
*pisane z palca. -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 21.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
Chyba to zapytanie jest złe. Wyświetla mi nazwy WSZYSTKICH tagów a nie tagów konkretnego newsa (nawet jak w phpmyadmin dam
SELECT Tagi.nazwa FROM Tagi, News WHERE News.tagi IN (1, 3) ) |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 4 Dołączył: 25.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 21.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
A w jaki sposób mogę kolumnę tagi z News przenieść do nowej tabeli tagi_news tak żeby mieć tam id_newsa id_tagu. Można to jakoś zautomatyzować? Mógłbym prosić o jakieś ogólne "kroki" ?
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 374 Pomógł: 79 Dołączył: 6.04.2010 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
A w jaki sposób mogę kolumnę tagi z News przenieść do nowej tabeli tagi_news tak żeby mieć tam id_newsa id_tagu. Można to jakoś zautomatyzować? Mógłbym prosić o jakieś ogólne "kroki" ?
Z tym, że w Twojej tabeli "News" kolumna "tagi" przechowuje kilka tagów a najlepiej by było gdyby nowa tabela "tagi_news" przechowywała tylko jeden identyfikator tagu. Czyli, że trzeba by było zastosować regex na kolumnie "tagi", czego samym SQLem nie zrobisz. Piszę "samym" bo można zastosować jakąś bibliotekę do obsługi wyrażeń regularnych w MySQLu, np. LIB_MYSQLUDF_PREG. To jednak wymaga nieco większej niż podstawowa znajomości SQLa. Żeby osiągnąć zamierzony efekt (czyli jeden id newsa - jeden id tagu) bez zaawansowanej wiedzy, musiałbyś wykorzystać PHP.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 03:01 |