2011-08-18 90 views
0

我正在嘗試創建一個基本的搜索功能。我有一個ID爲「npa」的文本字段,當我提交時,我想將置於npa字段中的值插入到$ searchroute mysql查詢中。Mysql選擇動態文本字段

我很新的PHP,所以這讓我有點難住。

if ($_POST["submit"]) { 

    $searchroute = "SELECT * FROM destination_route as d WHERE d.destPrefix='npa'"; 


    $results = mysql_query($searchroute); 
    $row = mysql_fetch_array($results); 
    print_r($row); 

} 


    ?> 

<html> 

    <form name="query" id="showdid" action="" method="post" enctype="multipart/form-data" > 
    <input type="text" name="npa" id="npa" value=""> 
    <input type="submit" name="submit" id="submit" value="Submit"> 
    </form> 

</html> 

回答

1

既然你已經在使用mysql_*功能,下面的示例代碼也使用它們。但是,您應該放棄這些功能,而是使用PDO。這且不說:

<?php 
if (!empty($_POST['submit'])) { 

    if (!empty($_POST['npa'])) { 

     $searchroute = "SELECT * 
         FROM destination_route as d 
         WHERE d.destPrefix='".mysql_real_escape_string($_POST['npa'])."'"; 

     $results = mysql_query($searchroute); 
     $row = mysql_fetch_array($results); 
     print_r($row); 
    } 
} 
?> 

<html> 

    <form name="query" id="showdid" action="" method="post"> 
    <input type="text" name="npa" id="npa" value=""> 
    <input type="submit" name="submit" id="submit" value="Submit"> 
    </form> 

</html> 

我所做的只是添加一些調用空(爲了避免在案件還沒有被創建的變量聲明),躲過了數據,因爲它被髮送到數據庫(非常重要,使得PDO這更容易),並刪除了enctype="multipart/form-data",因爲它不需要你的功能(沒有文件上傳)。

爲了更好地展示需要發生什麼的基礎知識,我儘量保留修改。還有很多可以做的事情,比如執行額外的消毒/驗證輸入,例如,輸入等等。

+0

謝謝,工作完美! – ipengineer