我想使用复选框php mysql搜索过滤我的数据库值

时间:2017-08-24 06:23:43

标签: php mysql search checkbox

enter image description here通过使用此代码,我现在可以获取pro_price表,但我需要多列saerch。这是我的独奏专栏的工作代码,但我需要从该表中获取更多两列。我怎么能这样做。请帮忙

数据库名称:拍卖

表名: addproduct

列名称: pro_price,pro_code,hsn_code

这是我的代码,

{{1}}

}

请帮助......谢谢

2 个答案:

答案 0 :(得分:1)

执行SELECT *,返回表中的所有列。在您的情况下,似乎只有一个列,因此您需要向表中添加其他列,或者您需要确定是否未授予您查看表中所有列的权限。

更新:

您真正想要做的就是添加其他搜索条件。这意味着您的查询将变为类似以下内容:

SELECT * FROM addproduct WHERE pro_price IN ('$states') OR pro_code IN ('$codes')

为了实现这一点,您必须使用所选价格执行已经存在的操作(即将它们存储为一个名为$ states的变量)。在上面的SQL行中,我假设您将所选代码值存储在名为$codes的类似变量中。

这个添加的完整代码就像tis:

if(isset($_REQUEST['search'])){
$pro_price = $_REQUEST['pro_price'];
$pro_code = $_REQUEST['pro_code'];
foreach ($_REQUEST['pro_price'] as $pro_price) {
    $statearray[] = mysql_real_escape_string($pro_price);
}
foreach ($_REQUEST['pro_code'] as $pro_code) {
    $codesarray[] = mysql_real_escape_string($pro_code);
}
$states = implode ("','", $statearray);
$codes = implode ("','", $codesarray);
$sql = "SELECT * FROM addproduct WHERE pro_price IN ('$states') OR pro_code IN ('$codes')";

请注意,我不是PHP编码器,因此完全可以对代码进行优化。我只是想告诉你我认为会起作用的。

答案 1 :(得分:0)

最后我得到了我的问题的解决方案。感谢@SchmitzIT谁支持我。我发布了更多候选人的代码。

<强>的index.php

<form name="search" method="post" action="searchplant">
<table width="900" border="1" class="srch">
<tr class="head"><td>Pro Price</td></tr>
<tr>
<td>
<input type="checkbox" value="250" name="pro_price[]">250<br />
<input type="checkbox" value="80" name="pro_price[]">80<br />
<input type="checkbox" value="50" name="pro_price[]">50<br />
<input type="checkbox" value="40" name="pro_price[]">40<br />
<input type="checkbox" value="299" name="pro_price[]">299<br />
<td>
</tr>
<tr class="head"><td>hsncode</td></tr>
<tr>
<td>
<input type="checkbox" value="101101" name="hsn_code[]">101101<br />
<input type="checkbox" value="101102" name="hsn_code[]">101102<br />
<input type="checkbox" value="101103" name="hsn_code[]">101103<br />
<input type="checkbox" value="101104" name="hsn_code[]">101104<br />
<input type="checkbox" value="101105" name="hsn_code[]">101105<br />
<td>
</tr>
<tr class="head"><td>procode</td></tr>
<tr>
<td>
<input type="checkbox" value="101" name="pro_code[]">101<br />
<input type="checkbox" value="102" name="pro_code[]">102<br />
<input type="checkbox" value="103" name="pro_code[]">103<br />
<input type="checkbox" value="104" name="pro_code[]">104<br />
<input type="checkbox" value="105" name="pro_code[]">105<br />
<td>
</tr>
<tr><td colspan="3" align="Right">
<input type="submit" name="search" value="Search" /></td></tr>
</table>
</form>
</div><!-- end service-->
<div id="media" class="group">

<强>的search.php

if(isset($_REQUEST['search']))
{
    $pro_price = $_REQUEST['pro_price'];
    $pro_code = $_REQUEST['pro_code'];
    $hsn_code = $_REQUEST['hsn_code'];
    foreach ($_REQUEST['pro_price'] as $pro_price) {
        $statearray[] = mysql_real_escape_string($pro_price);
    }
    foreach ($_REQUEST['pro_code'] as $pro_code) {
        $codesarray[] = mysql_real_escape_string($pro_code);
    }
    foreach ($_REQUEST['hsn_code'] as $hsn_code) {
        $hsnarray[] = mysql_real_escape_string($hsn_code);
    }
    $states = implode ("','", $statearray);
    $codes = implode ("','", $codesarray);
    $hsn = implode ("','", $hsnarray);
    $sql = "SELECT * FROM addproduct WHERE pro_price IN ('$states') OR pro_code IN ('$codes') OR hsn_code IN ('$hsn')";

    //Now we search for our search term, in the field the user specified
    $result = mysql_query($sql) or die(mysql_error());

    //This counts the number or results - and if there wasn't any it gives them a     little     message explaining that
    if (mysql_num_rows($result) == 0)
    {
        echo "Sorry, but we can not find an entry to match your query...<br><br>";
    }
    else
    {
        echo "<table border='1' width='900' class='srchrslt'>
        <tr class='head'>
        <td>pro_name</td>
        <td>pro_brand</td>
        <td>hsn_code</td>
        <td>pro_price</td>
        <td>pro_code</td>
        </tr>";

        //And we display the results
        while($row = mysql_fetch_assoc( $result ))
        {              
            echo "<tr>";

            echo "<td>" . $row['pro_name'] . " </td>";
            echo "<td>" . $row['pro_brand'] . " </td>";
            echo "<td>" . $row['hsn_code'] . " </td>";
            echo "<td>" . $row['pro_price'] . " </td>";
            echo "<td>" . $row['pro_code'] . " </td>";
            echo "</tr>";
        }
        echo "</table>";
    }
}

只需根据您的数据更改数据库名称,表名称,列名称和值。

希望你找到这个有用的