2013-06-04 127 views
0

我想讓我的搜索在我的數據庫中查找$ searchtext,其中$ selecteditem代表它正在搜索的columb。出於某種原因,當我嘗試搜索某些我確定的東西時,它返回0結果。搜索無法正常工作

是的我知道sql注入,我會改變它爲mysqli,一旦我找出如何輕鬆做到這一點。

我的形式 -

<form name="search" id="search" method="POST" action=""> 
    <input type="text" name="searchterm" id="searchterm"> 
    <select name="selectitem"> 
     <option value="propertydescription">Property/Description</option> 
     <option value="transactiontype">Transaction type</option> 
     <option value="applicabledocument">Applicable document</option> 
     <option value="recieved">recieved</option> 
     <option value="paid">paid</option> 
    </select> 

</div></td> 
<td>&nbsp;</td> 
<td><input type="submit" name="search" value="search"></td> 

我公司招聘

if (isset($_POST['search'])) 
{ 
    $columbname = $_POST['selectitem']; 
    $searchterm = $_POST['searchterm']; 
    $query="SELECT * FROM transactions WHERE agentclient = '$agentclient' AND $columbname = '$searchterm'"; 
    $result = mysql_query ($query) or die(mysql_error()); 
} 
else 
+1

究竟是行不通的什麼地方刪除$符號?你的查詢是什麼樣的,'$ agentclient'包含什麼? –

+0

在'

'你有'action =「」' - 那是你想要的嗎? – Tigger

+0

$ agentclient包含它正在查找的名稱,我有兩個查詢,一個只顯示$ agentclient的結果,這個應該顯示$ agentclient $的搜索結果,而不是它的結果。 –

回答

0

使用同樣的操作,如果$ columbname爲varchar或columbname場

0

PHP您可以通過打印您的查詢和檢查,要麼是通過所需的參數或不對它進行測試。如果是,那麼複製查詢並運行mysql db並檢查結果。

if (isset($_POST['search'])) 
    { 
     $columbname = $_POST['selectitem']; 
     $searchterm = $_POST['searchterm']; 

    echo "SELECT * FROM transactions WHERE agentclient = '$agentclient' AND $columbname = '$searchterm'"; exit; 

     $query="SELECT * FROM transactions WHERE agentclient = '$agentclient' AND $columbname = '$searchterm'"; 
     $result = mysql_query ($query) or die(mysql_error()); 
    } 
    else 
相關問題