将多个值数组到变量

时间:2015-02-02 11:23:31

标签: php mysql arrays forms

作为学校项目的一部分,我需要一点点帮助。 我有一个多选表单,将值作为数组发送。

现在在其发布的页面,如果我使用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 "
			&#8729; 1 stk - <b>".$row['tilbehor_navn']."</b><br>
			";
		}
		} else {
		echo "Der er ikke valgt noget tilbehor";
		}	

但这不起作用,因为它只能在WHERE = statment中处理1个值... 当数组发送多个值时,我需要知道如何使它工作..:/ ..任何想法?

3 个答案:

答案 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 "
                &#8729; 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')";