Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> nietypowe zliczanie
neverever
post 7.09.2007, 13:27:06
Post #1





Grupa: Zarejestrowani
Postów: 278
Pomógł: 44
Dołączył: 17.02.2004
Skąd: Wieliczka

Ostrzeżenie: (10%)
X----


Mam pole KEYWORDS zawierające słowa kluczowe oddzielone przecinkiem.
Wybrane słowa oczywiście mogą się powtarzać pomiedzy rekordami.

I teraz mój problem polega na tym, że muszę zliczyć liczbę wystąpień dla wszystkich słów kluczowych.


przykład

rekordy:
slowo1, slowo2, slowo 3, slowo4
slowo4, slowo5, slowo6
slowo3, slowo4, slowo5, slowo9
slowo1, slowo5, slowo6
...

wynik:
slowo1 -2x
slowo2 -1x
slowo3 -2x
slowo4 -3x
slowo5 -3x
slowo6 -2x
slowo9 -1x
...

Jakl coś takiego zrobić?


--------------------
neverever
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
smarcz
post 10.09.2007, 20:12:48
Post #2





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 12.05.2005

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


zerknij na mój post - Temat: COUNT sortowanie wynikow - ja stosuje do moje tabeli zapytanie


  1. SELECT DISTINCT(slowo_klucz) AS `klucze`, COUNT(slowo_klucz) AS `ile` FROM `test_slowa_klucze` GROUP BY slowo_klucz
  2.  
  3. +---------------+-----+
  4. | klucze | ile |
  5. +---------------+-----+
  6. | Dom | 1 |
  7. | Dramers | 2 |
  8. | MAN | 1 |
  9. | Man | 2 |
  10. | Nowe | 7 |
  11. | Perfect | 3 |
  12. | Szukam | 1 |
  13. | S􏺳awek | 1 |
  14. +---------------+-----+
Go to the top of the page
+Quote Post
viraptor
post 11.09.2007, 23:47:50
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 27.03.2006

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


Cytat(neverever @ 7.09.2007, 13:27:06 ) *
Mam pole KEYWORDS zawierające słowa kluczowe oddzielone przecinkiem.
Wybrane słowa oczywiście mogą się powtarzać pomiedzy rekordami.

Albo możesz to obejść obrzydliwymi hackami w zapytaniu, albo przerobić tabele na znormalizowaną.
Znormalizowaną czyli:
- dodatkowa tabela z polami (id_keyword, keyword) gdzie trzymasz pojedyncze wpisy dla każdego słowa
- zamiast pola keywords w oryginalnej tabeli np. id_keyword_set
- dodatkowa tabela z polami (id_keyword_set, id_keyword), która je połączy
Czyli normalna normalizacja relacji wiele do wielu.
Potem już robisz standardowy count() ... group by - powinno być łatwo.
Go to the top of the page
+Quote Post
php programmer
post 12.09.2007, 10:02:40
Post #4





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


Jeśli nie za bardzo możesz prerobić, tabele,
to możesz stworzyć widok, w którym każde słowo jest oddzielne,
do stworzenia widoku używasz fukcji extract o ile istnieje
lub jakiegoś jej odpowiednika
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:49