Witam,
Zakładając że masz takie tabele:
CREATE TABLE owners
(
id_own int,
own_name varchar(50)
)
CREATE TABLE cars
(
id_car int,
car_name varchar(50)
);
CREATE TABLE posiadanie
(
id_own int,
id_car int
);
Z takimi danymi wejściowymi:
INSERT INTO owners VALUES(1,'WA');
INSERT INTO owners VALUES(2,'WB');
INSERT INTO cars VALUES(1,'CA');
INSERT INTO cars VALUES(2,'CB');
INSERT INTO posiadanie VALUES(1,1);
INSERT INTO posiadanie VALUES(1,2);
INSERT INTO posiadanie VALUES(2,1);
To twoje zadanie rozwiąże funkcja:
function pobierzWlascicieli
(array $dane) {
$ile_samochodow = count($dane); $samochody = "'".implode("','",$dane)."'";
$query = "
select id_own
from posiadanie
where
id_car in($samochody)
group by id_own
having count(*) = $ile_samochodow";
if($wyniki > 0)
{
echo "Właściciele spełniający warunki: <br />"; for($i = 1; $i <= $wyniki; $i++)
{
}
}else{
}
return 0;
}
Wywołanie funkcji:
pobierzWlascicieli($dane_wej);
W tabeli posiadanie masz przypisania właściciel -> samochód.
Funkcja pobiera dane wejściowe w postaci tablicy, sprawdza ilość podanych "samochodów", składa identyfikatory w tablicę którą może zczytać sql.
Generalnie cały problem rozwiązuje warunek having.
Pozdrawiam.