我目前正在尝试使用php和mysqli,现在面临一些小问题。 我有一个包含3个复选框的表单,用户可以在其中选择必填字段。因此,数据库包含3个属性(二进制; 0,1)。数据集可以包含0到3个属性。
这些是复选框:
<form method="post" action="handler.php">
<input type="hidden" name="attribute1" value="0" />
<input type="checkbox" name="attribute1" value="1" /> Attribute1 <br/>
<input type="hidden" name="attribute2" value="0" />
<input type="checkbox" name="attribute2" value="1" /> Attribute2 <br/>
<input type="hidden" name="attribute3" value="0" />
<input type="checkbox" name="attribute3" value="1" /> Attribute3 <br/><br/>
<input type="submit" value="Submit">
</form>
所以目标是如果我检查attribute1,结果必须包含attribute1 = 1的所有数据集,但它们也可以包含attribute2 = 1&amp; attribute3 = 1。
当我立即检查attribute1时,我得到a1 = 1,a2 = 0和a3 = 0的结果。
所以我认为这可以通过使用仅存储已选中复选框的数组来解决,因此如果检查了attribute1和attribute3,则应该是$ array = [attribute1 = 1,attribute3 = 1]。
我当前的mysqli查询:
$strAttribute1 = $_POST["attribute1"];
$strAttribute2 = $_POST["attribute2"];
$strAttribute3 = $_POST["attribute3"];
$query = "SELECT name, beschreibung
FROM uebersicht
WHERE attribute1 = $strAttribute1
AND attribute2 = $strAttribute2
AND attribute3 = $strAttribute3";
作为一个解决方案,我想到了一个类似的查询:
... WHERE " . $array ."
不幸的是我陷入了这一点,这是用数组解决它的正确方法吗?或者这是错误的想法?
感谢您的帮助!