Übergeben kannst Du es zum Beispiel in einem Array. Z.B. für jede Zutat eine Checkbox in folgender Form:
du erhältst dann in $_POST['zutatids'] ein array.
Daraus kannst du Dir das Query zusammen bauen (ausgehend von meiner ursprünglichen Modellierung):
Und nochmal: Es spielt keine Rolle, ob Du 0, 15 oder 100 Zutaten hast, wenn Du ein Datenbankmodell hast, welches eine m:n-Beziehung mit 3 Tabellen abbildet.
HTML:
<input type="checkbox" name="zutatids[]" value="1">Wodka
^- Die ID der Zutat
Daraus kannst du Dir das Query zusammen bauen (ausgehend von meiner ursprünglichen Modellierung):
PHP:
$query="SELECT "."\n"
"cocktail.id,"."\n"
"cocktail.name,"."\n"
"COUNT(*) AS anzahlZutaten"."\n"
"FROM cocktail";
for ($i=0;$i<count($_POST['zutatids']);$i++) {
$query.="\n"
."JOIN cocktailZutaten AS z"
.$i." ON (cocktail.id=z".$i.".cocktailId)";
}
$query.="\n"
."GROUP BY c.cocktailId"."\n"
."WHERE";
$i=0
foreach($_POST['zutatids'] as $zID) {
$i++;
$query.="\n"
."z".$i.".zutatId=".$zID."\n"
."AND";
}
$query.="anzahlZutaten=".count($_POST['zutatids']);
echo $query;
$res=mysql_query($query);