2017-08-24 73 views
-5

enter image description here通过使用此代码我现在可以获取pro_price表,但我需要多列saerch。这是我的独奏列的工作代码,但我需要从该表中获取更多的两列。我该如何做到这一点。请帮助我想搜索使用复选框筛选我的数据库值php mysql

数据库名称:拍卖

表名:addProduct命令

列名:pro_price,pro_code,hsn_code

这是我的代码,

if(isset($_REQUEST['search'])){ 
$pro_price = $_REQUEST['pro_price']; 
foreach ($_REQUEST['pro_price'] as $pro_price) { 
    $statearray[] = mysql_real_escape_string($pro_price); 
} 
$states = implode ("','", $statearray); 
$sql = "SELECT * FROM addproduct WHERE pro_price IN ('$states'))"; 
$result = mysql_query($sql) or die(mysql_error()); 
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_tax2</td> 
    <td>pro_tax3</td> 
    </tr>"; 
    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_tax2'] . " </td>"; 
     echo "<td>" . $row['pro_tax3'] . " </td>"; 
     echo "</tr>"; 
    } 
    echo "</table>"; 
} 

}

请帮助...谢谢你们

+0

请提供你的问题的更多细节。您已经选择了所有表格中的值,因此它将提供与您的条件相匹配的所有结果。您希望在条件中获取两个以上的参数。请解释。 –

+0

@sonamgupta我正在通过多个复选框从数据库中搜索。在这里通过执行此代码,我只能得到我的复选框下的pro_price。我需要使用pro_code&hsn_code也用于我的多个搜索 – Yahiya

+0

因此,您确实已经在该页面上发布了多个选中的值,第一个获取所有值,如pro_price,然后将其添加到where子句中。 –

回答

1

你做一个SELECT *,它返回表中的所有列。在你的情况下,似乎只有一列,所以无论你需要添加额外的列到表中,或者,你需要确定你是否没有被授予查看表中所有列的权限。

UPDATE:

看来你真正想要做的是添加其他搜索条件。这意味着您的查询就会变成像下面这样:

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

对于工作,你必须做你已经与选定的价格(即存储它们的变量I名为$状态)。在上面的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的编码器,所以它是完全有可能的代码可以被优化。我只是想向你展示我的想法。

+0

iam alredy从表中获取所有值** addproduct **使用'$ sql =“选择* FROM addproduct WHERE pro_price IN('$ states'))”;'我需要知道如何从表中检索两列或更多列,如我提取** pro_price **。在哪里我需要更改我的代码? – Yahiya

+0

这就是我所说的;你可以使用'SELECT *'来获得表格中的每一列。没有其他栏目。该表似乎有你已经提取的列(在这种情况下,'SELECT *'相当于执行'SELECT pro_name,pro_brand,hsn_code,pro_tax2,pro_tax3')。如果您怀疑还有其他列,您可能已将它们放入记录集中,并需要将它们添加到HTML表格中,或者您可能没有查看列的权限。 – SchmitzIT

+0

我正在通过多个复选框从数据库中搜索。在这里通过执行此代码,我只能得到我的复选框下的pro_price。我需要使用pro_code&hsn_code也用于我的多个搜索 – Yahiya

0

最后我得到了我的问题的解决方案。感谢支持我的@SchmitzIT。 Iam张贴代码为更多候选人。

的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>"; 
    } 
} 

根据您的数据只是更改数据库名,表名,字段名和值。

希望你觉得这个有用