将复选框值存储在数组中并在mysqli查询中使用它们

时间:2015-05-22 18:30:03

标签: php html mysql sql mysqli

我目前正在尝试使用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 ."

不幸的是我陷入了这一点,这是用数组解决它的正确方法吗?或者这是错误的想法?

感谢您的帮助!

0 个答案:

没有答案