我在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来制作数组?
答案 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;
}