Ich versuche, eine Abfragezeichenfolge aus mehreren Kontrollkästchen zu bilden, die zur Abfrage meiner Datenbank verwendet werden soll.
Ich habe das folgende Formular:
<fieldset data-role="controlgroup">
<input type="checkbox" name="wheat" id="checkbox-1a" class="custom" />
<label for="checkbox-1a">Wheat Allergy</label>
<input type="checkbox" name="yeast" id="checkbox-2a" class="custom" />
<label for="checkbox-2a">Yeast Allergy</label>
<input type="checkbox" name="sugar" id="checkbox-3a" class="custom" />
<label for="checkbox-3a">Sugar Allergy</label>
<input type="checkbox" name="dairy" id="checkbox-4a" class="custom" />
<label for="checkbox-4a">Dairy Allergy</label>
Mein PHP-Code lautet wie folgt:
if(isset($_POST['wheat']))
{
$str1 = 'wheatfree = 1';
}
if(isset($_POST['yeast']))
{
$str2 = 'yeastfree = 1';
}
if(isset($_POST['sugar']))
{
$str3 = 'sugarfree = 1';
}
if(isset($_POST['dairy']))
{
$str4 = 'dairyfree = 1';
}
$fullsearch = $str1.$str2.$str3.$str4;
$str_SQL = "SELECT * FROM recipes WHERE ".$fullsearch;
echo $str_SQL;
Das entspricht in etwa meinen Anforderungen, ist aber nicht sehr elegant.
Zum einen sieht die Sql-Abfrage wie folgt aus:
SELECT * FROM rezepte WHERE zuckerfrei = 1molkereifrei = 1
und wenn der Benutzer nicht eine davon auswählt, erhalte ich natürlich einen Fehler "Undefinierte Variable" für die nicht ausgewählte Zeichenfolge.
Ich bin mir nicht sicher, wie ich das Problem beheben kann oder was ich als nächstes tun soll. Ich möchte einige Logik in hier, die gerade die Zeichenfolge geändert, basierend auf was auf dem Formular überprüft wird, die dann eine schöne saubere SQL-Abfrage bildet, die ich gegen meine DB ausführen kann. Aber ach, ich bin verloren :(
Hilfe?