【发布时间】:2017-02-27 23:43:04
【问题描述】:
我有一个非常简单的 HTML 表单,使用 POST 方法发送某些活动的名称,这些活动是否已检查...
<input type="checkbox" name="games[]" value="darts=1">Darts</input>
<input type="checkbox" name="games[]" value="e-darts=1">e-Darts</input>
<input type="checkbox" name="games[]" value="pool=1">Pool</input>
<input type="checkbox" name="games[]" value="snooker=1">Snooker</input>
<input type="checkbox" name="games[]" value="airhockey=1">Air Hockey</input>
<input type="checkbox" name="games[]" value="quizmachine=1">Quiz Machine</input>
<input type="checkbox" name="games[]" value="food=1">Food</input></br></br>
这不是问题,我正在通过值,所有笨拙的多莉。
然后,我尝试从数组中取出 foreach 循环中的任何检查值,并通过在所有值之间添加“和”,将这些值连接到 where 子句,直到最后一个。但是,它们没有连接,只是输出最终的复选框结果 - 我如何连接?这是我的php代码:
<?php
$i = 0;
if(!empty($_POST['games'])) {
foreach($_POST['games'] as $check) {
if(++$i === count($_POST['games'])) {
/*echo $check;*/
}
else {
$check = $check . " and ";
/*echo $check;*/
}
}
}
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
foreach($conn->query("SELECT * from Establishments where town like '".$publocation."' and ".$check."") as $row) {
print $row['name'] . "</br>";
}
$conn = null;
}
catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
【问题讨论】:
-
darts=1和e-darts=1等在您的数据中对应于哪些列?这将有助于理解数据,以便正确编写查询 -
我设置了 darts=1,这样我就可以通过并在连接的 SQL 语句中使用它(即 select * from blah where darts=1 and e-darts=1 等)。
-
数据库列只是没有“=1”部分的复选框的值
标签: php mysql checkbox concatenation