作为学校项目的一部分,我需要一点点帮助。 我有一个多选表单,将值作为数组发送。
现在在其发布的页面,如果我使用print_r($ _ POST);看看我得到了什么。
我看到我得到[tilbehor] =>数组([0] => 11 [1] => 19 [2] => 20) 来自“tilbehor”形式领域。
多数民众赞成。我得到的值是11,19和20. - 这些都是我在表格中选择的数据库中的ID。
但我需要这些ID从我的数据库中选择somthing,并在数据库中回显重新定位,其中datebase中的ID =数组中的id ...
现在我使用的代码可以使用,但只有从表单字段“tilbehor”发送一个值时 我使用此代码将发送的表单字段转换为变量。
$ t_id = $ _POST ['tilbehor']
这是为了让它显示ID为数据库的所有内容的名称
$query = "SELECT * FROM tilbehor WHERE t_id='$t_id'";
$result = $db->query($query);
$num_rows = $result->num_rows;
if($num_rows > 2) {
while($row = mysqli_fetch_array($result)) {
echo "
∙ 1 stk - <b>".$row['tilbehor_navn']."</b><br>
";
}
} else {
echo "Der er ikke valgt noget tilbehor";
}
但这不起作用,因为它只能在WHERE = statment中处理1个值... 当数组发送多个值时,我需要知道如何使它工作..:/ ..任何想法?
答案 0 :(得分:0)
$t_id = $_POST['tilbehor'];
$t_id=implode(',',$t_id);//impload the value with the ',' and used IN operate to get all the value relate this id (11, 19 and 20)
$query = "SELECT * FROM tilbehor WHERE t_id IN ($t_id)";
//"SELECT * FROM tilbehor WHERE t_id IN (11,19,20)"
$result = $db->query($query);
$num_rows = $result->num_rows;
if($num_rows > 2) {
while($row = mysqli_fetch_array($result)) {
echo "
∙ 1 stk - <b>".$row['tilbehor_navn']."</b><br>
";
}
} else {
echo "Der er ikke valgt noget tilbehor";
}
答案 1 :(得分:0)
// Join array with comma separator
$ids = implode(',', $_POST['tilbehor']);
// Create the sql statement
$sql = "SELECT * FROM tilbehor WHERE t_id IN($ids)";
// Execute sql here...
答案 2 :(得分:0)
试试这个..
$ids = array('11', '19', '29');
$ids = implode(',', $ids);
$query = "SELECT * FROM tilbehor WHERE t_id IN ('$ids')";