Mój skrypt to wyszukiwarka w katalogu bibliotecznym. Mam 7 pól w formularzu i 7 zapytań, z czego każde zwraca mi ID książek, jeżeli dany warunek jest spełnony(np jeżeli hasło_przedmiotowe jest powiązane z daną książką). Wyniki zwracane są do tablic. W wyszukiwaniu żadne pole nie jest obowiązkowe więc można podać zarówno 7 jak i 1, albo 5, a także każda książka może mieć wielu autorów, albo jeden autor może napisać wiele książek, tak samo z słowami kluczowymi zachodzi relacja wiele do wielu.
W związku z tym mając te N tablic o M wielkości potrzebuję znaleźć najczęściej powtarzającą się wartość/wartości(id książek), które będą odpowiadać wynikom wyszukiwania.
Kod:
//tytul
$q="SELECT id FROM ksiazki WHERE tytul='$tytul';";
$by_tytul[]=$row['id'];
}
//autor
$q="SELECT k.id FROM ksiazki AS k, autorzy AS a, autorzy_to_ksiazki AS atk WHERE a.imie='$autor' AND atk.autor_id=a.id AND atk.ksiazka_id=k.id;";
$by_autor[]=$row['id'];
}
//haslo przedmiotowe
$q="SELECT k.id FROM ksiazki AS k, hasla_przedmiotowe AS hp, hasla_to_ksiazki AS htk WHERE hp.haslo_przedmiotowe='$hasloPrzedmiotowe' AND htk.id_hasla=hp.id AND htk.id_ksiazki=k.id;";
$by_hasloprzedmiotowe=array(); $by_hasloprzedmiotowe[]=$row['id'];
}
//slowa kluczowe
$q="SELECT k.id FROM ksiazki AS k, slowa_kluczowe AS sk, slowa_to_ksiazki AS stk WHERE sk.slowo_klucz='$slowaKluczowe' AND stk.id_slowa=sk.id AND stk.id_ksiazki=k.id;";
$by_slowakluczowe=array(); $by_slowakluczowe[]=$row['id'];
}
//rok wydania
$q="SELECT id FROM ksiazki WHERE rok_wydania='$rokWydania';";
$by_rokwydania[]=$row['id'];
}
//wydawnictwo
$q="SELECT id FROM ksiazki WHERE wydawnictwo='$wydawnictwo';";
$by_wydawnictwo[]=$row['id'];
}
//isbn
$q="SELECT id FROM ksiazki WHERE isbn='$isbn';";
$by_isbn[]=$row['id'];
}
Na początku jak to pisałem wydawało mi się to możliwe, ale w tej chwili nie jestem do końca pewien czy jest możliwe rozwiązanie wyszukiwania w ten sposób.