簡體   English   中英

使用PHP根據復選框從mysql數據庫中選擇多個項目?

[英]Select multiple items from mysql database based on checkboxes using PHP?

我試圖基於選擇的復選框從mysql數據庫中獲取多個項目。

例:

1位用戶選擇頁面上的3個復選框,然后單擊“提交”按鈕。 2-在下一頁上,將顯示這3個產品。

我當前的代碼是這樣的:

第一頁:

<div align="center">
<input style="float:left;" type="checkbox" name="check_list[]" value="'.$product_name.'" />
<img width="67" src="../images/'.$id.'.jpg"  /><br />
'.$product_name.'
</div>

上面的代碼處於while loop ,並且工作正常。 我應該從mysql數據庫中獲取所有產品。

第二頁:

<?php
if(isset($_POST['submit'])){//to run PHP script on submit
if(!empty($_POST['check_list'])){
// Loop to store and display values of individual checked checkbox.
foreach($_POST['check_list'] as $selected){
//echo $selected."</br>";



include "../config/connect.php";
// This block grabs the whole list for viewing
$products_list = "";
$sql = "SELECT * FROM products WHERE product_name='$selected'";
$query = mysqli_query($db_conx, $sql);
$productCount = mysqli_num_rows($query); // count the output amount
if ($productCount > 0) {
    while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){ 
             $id = $row["id"];
             $product_name = $row["product_name"];
             $gender = $row["gender"];
             $products_list .= '<div align="center">
<input style="float:left;" type="checkbox" name="check_list[]" value="'.$product_name.'" />
<img width="67" src="../images/'.$id.'.jpg"  /><br />
'.$product_name.'
</div>';
    }
} else {
    $products_list .= "You have nothing";
}
}
}
}
?>
<?php echo $products_list; ?>

第二頁上的代碼僅回顯最后檢查的項目!

但我需要顯示首頁上選中的所有項目。

有人可以幫我這個忙嗎?

謝謝。

不要做

$products_list = "";

在你的循環中。 移至之前

foreach($_POST['check_list'] as $selected){

它打印最后檢查的項目,因為您要重置每次循環插入時要回顯的字符串。 使用此代碼。

<?php
if(isset($_POST['submit'])){//to run PHP script on submit
    if(!empty($_POST['check_list'])){
    // Loop to store and display values of individual checked checkbox.
    $products_list = "";
        foreach($_POST['check_list'] as $selected){
        //echo $selected."</br>";



        include "../config/connect.php";
        // This block grabs the whole list for viewing
        $sql = "SELECT * FROM products WHERE product_name='$selected'";
        $query = mysqli_query($db_conx, $sql);
        $productCount = mysqli_num_rows($query); // count the output amount
            if ($productCount > 0) {
                while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){ 
                    $id = $row["id"];
                    $product_name = $row["product_name"];
                    $gender = $row["gender"];
                    $products_list .= '<div align="center">
                    <input style="float:left;" type="checkbox" name="check_list[]" value="'.$product_name.'" />
                    <img width="67" src="../images/'.$id.'.jpg"  /><br />
                    '.$product_name.'
                    </div>';
                }
            } else {
                $products_list .= "You have nothing";
            }
        }
    }
}
?>
<?php echo $products_list; ?>

我將$products_list移到了foreach循環之外。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM