2017-08-24 72 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>"; 
    } 
} 

根據您的數據只是更改數據庫名,表名,字段名和值。

希望你覺得這個有用