使用在选择中POST的Id创建不同Id的数组

时间:2012-10-18 19:50:06

标签: php

我在FORM中有SELECT name="idproduct",其OPTION VALUE是我选择的产品的ID。我想在PHP中创建一个数组,其中包含我一个接一个选择的产品的ID 示例:

$idproducts=(1, 2, 14, 24, 8)

在表格的顶部我有SELECT,首先我选择一个产品。然后我选择另一个等....我需要在选择中选择产品的ID,因为在页面下方我有一个表格,我想要显示我在顶部选择的产品。

$sql='SELECT    id_product,
        nameproduct,
        situation,
        quantity            
        FROM product
        WHERE id_product = "'.$idproducts.'"';

有人会解释我如何使用SELECT发布的ID来制作数组?

4 个答案:

答案 0 :(得分:1)

$ sql ='SELECT id_product,nameproduct,situation,quantity         FROM product WHERE id_product IN(。$ idproducts。)';

答案 1 :(得分:0)

假设您的<select>是多选的,您可以循环遍历数组,以构建查询字符串:

$sql='SELECT id_product,
        nameproduct,
        situation,
        quantity            
        FROM product
        WHERE 1';

foreach( $_POST['idproducts'] as $k=>$v ){
    $sql .= ' OR id_product = ' . $v;
}

答案 2 :(得分:0)

如果$ idproducts是一个数组:

$sql='SELECT id_product, nameproduct, situation, quantity FROM product 
      WHERE id_product IN ('.implode(',',$idproducts).')';

答案 3 :(得分:0)

这是一个我喜欢用于将数据数组转换为或基于查询的函数的函数。

    $sql_stub = "SELECT id_product, nameproduct, situation, quantity FROM product";
    $sql = orQuery($sql_stub, array("id1", "id2"), "id_product");

    function orQuery($sql_stub, $array, $field){

        //START WHERE CLAUSE
        $where = "WHERE ";

        //ADD DATA TO THE WHERE CLAUSE
        foreach($array as $data){
                    $where = $where." ".$field." = '".$data."' OR ";
        }

        //CHECK THAT THE WHERE CLAUSE IS MORE THAN JUST WHERE
        if($where!="WHERE "){
            //REMOVE THE TRAILING OR
            $where = substring($where, strlen($where)-4);

            //APPEND TO SQL_STUB
            $sql_stub = $sql_stub.$where;
        }
        return $sql_stub;
    }