1

フォームのSELECT name="idproduct"内部にあり、そのオプション値は選択した製品のIDです。選択した商品のIDを次々とPHPで配列したいと思います。
例:

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

テーブルの一番上にSELECTがあり、最初に1つの製品を選択します。次に、別の商品などを選択します。ページの下に、選択した商品を上部に表示するテーブルがあるため、その選択で選択した商品のIDが必要です。

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

誰かが私に、投稿されたIDで配列を作成する方法を説明してくれますSELECTか?

4

4 に答える 4

1

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

于 2012-10-18T20:00:25.867 に答える
0

$ idproductsが配列の場合:

$sql='SELECT id_product, nameproduct, situation, quantity FROM product 
      WHERE id_product IN ('.implode(',',$idproducts).')';
于 2012-10-18T20:05:56.757 に答える
0

これは、データの配列を where クエリに変換する、または where クエリに基づいて変換するために使用するのが好きな関数です。

    $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;
    }
于 2012-10-18T20:14:19.530 に答える
0

<select>あなたが複数選択であると仮定すると、次のように配列をループしてクエリ文字列を作成できます。

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

foreach( $_POST['idproducts'] as $k=>$v ){
    $sql .= ' OR id_product = ' . $v;
}
于 2012-10-18T19:55:56.493 に答える