簡體   English   中英

如何正確地將帶有提交按鈕的復選框形式的數據庫結果回顯到表中?

[英]How to correctly echo database results from checkbox form with submit button into table?

大家好,我是php,mysql和html的新手,對於我正在從事的項目,它有一個具有ID,產品,價格和條件的簡單數據庫。 在我的html表單上,我有四個復選框,其價格范圍為0-25、25-50、50-75和75-100。 這是我要嘗試執行的示例:如果用戶選擇0-25的復選框,則應該在表中回顯所有價格為0-25的產品的ID,產品,價格和條件。復選框的值保存在數組中,但是我現在完全迷失了。 如何在復選框的數據庫中輸出值。

PS我聽說過PDO,但是我們必須在該項目中使用mysql。 這是我的html:

<form action="pricefilter.php" method="post">
<br><b>Filter By Price:</b><br><br> 
<input type="checkbox" name="priceFilter[]" id="Price" value="025"/>&nbsp;$0-$25<br><br>
<input type="checkbox" name="priceFilter[]" id="Price" value="2550"/>&nbsp;$25-$50<br><br>
<input type="checkbox" name="priceFilter[]" id="Price" value="5075"/>&nbsp;$50-$75<br><br>
<input type="checkbox" name="priceFilter[]" id="Price" value="75100"/>&nbsp;$75-$100<br><br>
<input type="checkbox" name="priceFilter[]" id="Price" value="100"/>&nbsp;$75-$100<br><br>
<input type="submit" name="submit" value="Submit" />
</form>

這是我的PHP:

<?php
mysql_connect ("localhost", "root","root")  or die (mysql_error());
mysql_select_db ("XUSWAPSAMPLE");

$priceFilter = $_GET['priceFilter'];

 $filteredResponse = array ();
foreach($priceFilter as $range)
{
if($range == 025)
    {
        $query = "select * from Books where Price <= 25";
        $sql = mysql_query($query);

        array_push($filteredResponse, $sql);

    }

    if($range == 2550)
    {
        $query = "select * from Books where Price >= 25 AND Price <=50";
        $sql = mysql_query($query);

        array_push($filteredResponse, $sql);
    }
     if($range == 5075)
    {
        $query = "select * from Books where Price >= 50 AND Price <=75";
        $sql = mysql_query($query);

        array_push($filteredResponse, $sql);
    }

     if($range == 75100)
    {
        $query = "select * from Books where Price >= 75 AND Price <=100";
        $sql = mysql_query($query);

        array_push($filteredResponse, $sql);
    }
     if($range == 100)
    {
        $query = "select * from Books where Price >= 100";
        $sql = mysql_query($query);

        array_push($filteredResponse, $sql);
    }

您的代碼有兩點錯誤

1)您使用的是post方法提交表單,但嘗試使用$ _GET獲取值,因此您應該使用$ _POST

2)您應該使用php的isset屬性來檢查值是否存在。

所以解決方案是嘗試

if (isset($_POST['priceFilter']) && ($_POST['priceFilter']!="")) {
    $priceFilter = $_POST['priceFilter'];

    // put your remaining code here
}

暫無
暫無

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

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