![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 205 Pomógł: 3 Dołączył: 20.04.2009 Skąd: Jaworzno Ostrzeżenie: (0%)
|
Witam serdecznie...
Muszę zrobić wyszukiwarkę na stronę, która odpowiednio wyszukiwałaby i wyświetlała elementy w z bazy danych. Otóż działanie jest takie wpisuję w szukajce słowo "zielony" i chciałbym aby znalazło mi te ID z bazy w których występuje dane słowo. Lecz problem polega na tym że każdy REKORD ma pole KEYWORDS w którym słowa kluczowe wpisywane są w taki sposób : 1.- niebieski, ciemny, bielizna, kobieta, sklep, zakupy, darmowy szablon, allegro szablony 2.- zielony, kobieta, plaża, słońce, wakacje, kwiatki, darmowy, allegro 3.- niebieski, zakupy, odzież, granatowy, sklep, sprzedaż, porady allegro 4.- zakupy online, zakupy, fioletowy, ciuchy, ubrania, ubranka, sprzedawca, różowy, pink, kwiatki 5.- prezent, prezenty, niebieski, ciuchy, odzież, sklep, odzieżowy, zakupy I powinno dać mi rekord o ID 2 (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) lecz nie wiem kompletnie jak się do tego zabrać nigdy czegoś takiego nie robiłem i za bardzo nie wiem, czytałem w google i nic nie wyczytałem konkretnego... Moje rozumowanie jest takie : 1. pobrać wszystkie keyworods z bazy 2. wyexplodować przecinki tak aby otrzymać pojedyncze słowa 3. sprawdzić do którego z eksplodowanych keywordsów pasuje słowo z szukajki 4. odebrać ID elementu w którym znajduje się dany keyword Problem mam taki że nie wiem JAK zdobyć to ID? Może ktoś ma inny pomysł łatwiejszy;> Nie chcę tutaj gotowych kodów tylko teorię, resztą zajmę się sam i przy okazji się czegoś nauczę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Z góry bardzo dziękuje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 272 Pomógł: 9 Dołączył: 6.06.2009 Ostrzeżenie: (0%)
|
Select `id` po prostu, tak mi się wydaje (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 205 Pomógł: 3 Dołączył: 20.04.2009 Skąd: Jaworzno Ostrzeżenie: (0%)
|
no to by było proste:D tylko pobieram wszystkie słowa kluczowe:D z nich wyszukuje słowa które odpowiadają tym z szukajki i problem taki że id wyciągnąć się nie da:D bo ja robię coś źle.
Moje działanie jest dokładnie takie : 1. $hopsa=mysql_query("SELECT * FROM xxx"); 2. WHILE($rekord=mysql_fetch_array($hopsa)) { 3. tutaj eksploduje sobie keywordsy i dopasowywuje do słów z szukajki:D 4. i zostają mi te słowa które pasują ale nie ma jak wyciągnąć ID;> Nie wiem czy w ogóle w jasny sposób opisuje swój problem, nie mam zdolności humanistycznych. Mógłbym zrobić coś na zasadzie nowej tabeli w bazie i tam ID_PLIKU KEYWORD ale jeśli mam 300 plików i do każdego ~15 słów kluczowych to chyba nie ma sensu ? Ten post edytował Poker 6.08.2009, 01:13:51 |
|
|
|
Post
#4
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%)
|
Witam!
Oczywiście, że ma sens i jest to jedyne dobre wyjście. Jeśli chcesz trzymać te słowa kluczowe po przecinku jako TEXT i potem szukać REGEP'em to na bank nie oszczędzisz. Nie mówiąc już o rozszerzalności takiego rozwiązania. Dla bazy 10k rekordów to krótki kaszel, dobry indeks i nawet tego nie poczuje. Pozdrawiam! |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 205 Pomógł: 3 Dołączył: 20.04.2009 Skąd: Jaworzno Ostrzeżenie: (0%)
|
w takim razie to ogromne ułatwienie dla mnie, i zrobię to takim sposobem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Dziękuje za odpowiedź (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%)
|
A nie prościej zrobić osobną tabelę z tagami?
id, tag, topic_id Zawsze to łatwiej i mniejsze obciążenie. |
|
|
|
Post
#7
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%)
|
No tak to przecież ma działać. Kwestia tylko czy trzymamy keywordsy w osobnej tabeli i robimy referencję wielu do wielu czy przypisujemy słowo do elementu bezpośrednio (id_elementu, word).
|
|
|
|
Post
#8
|
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza |
|
|
|
|
Post
#9
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%)
|
Witam!
Faktycznie, trudno odmówić Ci racji (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Twoje rozwiązanie jest jak najbardziej w porządku. Pomijając oczywiście ewentualną rozbudowę, zarządzanie tagami itd (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Pozdrawiam! |
|
|
|
Post
#10
|
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza |
Witam!
Faktycznie, trudno odmówić Ci racji (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Nie sądzę aby kolega chciał przebudowywać strukturę bazy danych, raczej chciałby osiągnąć zamierzony efekt jak najmniejszym nakładem pracy stąd moja sugestia z wykorzystaniem LIKE. Nie zmienia to faktu, że poprawne rozwiązanie tego problemu (normalizacja) byłoby najlepszym rozwiązaniem. Pozdrawiam! hehe (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 00:07 |