![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
Witam serdecznie,
Mam takie pytanko, mam 2 tabele:
w tabeli test pola oznaczają: - user = loginy.id - p1-p10= liczba od 1 do 10 (ocena) Mam skrypt który ma w $_SESSION['dane'] - id usera (przykładowo). Chce generalnie wyświetlić listę użytkowników wraz z informacją (procentową) jak bardzo podobną do mojej odpowiedź zaznaczyli... SELECT * FROM test WHERE user = '$_SESSION['dane']' - zwróci mi informację o moich odpowiedziach.... Teraz chciałbym poznać odpowiedzi innych w formie - login_uzytkownika | ocena_procentowa - login_uzytkownika | ocena_procentowa - login_uzytkownika | ocena_procentowa ... w tabeli z testami są oceny wielu użytkowników. każdy użytkownik może mieć nieskończenie wiele ocen od innych użytkowników. Ocenę chce uzyskać w formie procentowej, czyli: - pobrane z bazy moje odpowiedzi = 100% - szukamy w bazie ocen dla innych użytkowników i porównujemy ich z moją oceną - i wyświetlamy w % podobieństwo... hmm... jak by to porównać... Załóżmy że wypełniam formularz zgłoszeniowy do biura pracy i na podstawie tych danych szukamy ludzi którzy zaznaczyli odpowiedzi podobne do moich... nie wiem czy dość dobrze to zobrazowałem.... Wiecie może jak to zrobić? Z góry dziękuje za pomoc, Northwest Ten post edytował northwest 28.02.2011, 14:17:54 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 85 Pomógł: 14 Dołączył: 14.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Java and PHP developer 2007-2014 :)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 30 Dołączył: 19.02.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Proponuję pewne rozwinięcie powyższej kwerendy:
Sama powyższa kwerenda daje wykaz różnic oddzielnie "po poszczególnych pytaniach", co ciężko ocenić "na oko". Warto by mieć jakiś jeden syntetyczny wskaźnik, np. sumę różnic w zakresie poszczególnych odpowiedzi. Można zrobić coś takiego: Zamiast wielokropka do powyższej kwerendy trzeba wstawić kwerendę z poprzedniego postu. Jest to więc w istocie kwerenda "ciągnąca" dane z kwerendy zagnieżdżonej. Fragment "AS p" wynika stąd, że MySQL w przypadku zagnieżdżonych kwerend wymaga nadania im synonimu. Dzięki sortowi na sumę różnic mamy "najlepiej pasujących" na początku. Takie rozwiązanie jest bliższe postulowanemu formatowi "login_uzytkownika | ocena_procentowa" (jedna). Inny wariant: Zamiast zwykłej sumy można ew. liczyć sumę kwadratów różnic (stosownie modyfikując powyższą kwerendę). Ten post edytował Valdi_B 28.02.2011, 17:17:57 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.06.2025 - 20:49 |