2011-08-11 79 views
-1

我有一個HTML表單,可以讓用戶編寫他們想要搜索的內容。在這種情況下,一個名稱。基於用戶從表單輸入創建數據庫查詢?

該表單可行,但它在php中。我不知道我必須編寫什麼才能讓MySQL搜索數據庫以查找用戶輸入的內容。

這裏是我卡住行:我使用PHP 5

+0

表單方法post或get?輸入名稱是什麼?你需要結果輸出幫助嗎? – Nemanja

+0

表單方法是Post並且輸入名稱是:search並且是的,我需要與Where Where Name = part的幫助 –

回答

1

這應該讓你使用的mysqli你的方式

$result = mysql_query("SELECT * FROM {$table} WHERE name = 'What do i gonna write 
here? (take away the ' "); 

。該手冊可以找到here

這假設你在發佈你的表單,否則你可以改變$ _POST到你將要使用的任何請求變量。在調用mysqli_real_escape_string之前或之後對錶單變量進行一些理智的檢查在生產環境中也會非常有用(必需)。

$db = new mysqli("localhost","user","password","database"); 

if(mysqli_connect_error()) 
{ 
    printf("Connection failed:%s \n",mysqli_connect_error()); 
    exit(); 
} 

$name = mysqli_real_escape_string($db, $_POST['search']); 
$table = 'some_table'; 

if($result = $db->query("SELECT * FROM $table WHERE name = $name", MYSQLI_ASSOC)) 
{ 
    while($row = $result->fetch_object()) 
    { 
     // $row is an associative array 
     // Do something here 
    } 
} 
$db->close(); 
+0

感謝偉大的工程,但如何以保存的方式輸出結果,如果結果= null在mysql中的部分,謝謝你,我真的很感謝你的幫助和善良:) –

+0

你的問題是如何查詢數據庫,而不是如何輸出結果。你需要做一些研究。 – ashurexm

-1
$sf = stripslashes($_REQUEST['search']); 
$sf = mysql_real_escape_string($sf); 


$result = mysql_query("SELECT * FROM {$table} WHERE name = '". $sf."'"); 
while($row = mysql_fetch_array($result)){ 
    //do stuff 
} 
+1

雖然這可能有效,但這是非常危險的,絕不應該以EVER作爲示例。 Google SQL注入。 – ashurexm

+0

問題不在於如何從SQL注入安全,而只是如何編寫查詢。我會(可能愚蠢)認爲任何使用mysql的人都知道去掉斜槓和所有那些好東西。下次在你給-1 –

+0

之前閱讀這個問題我會爭辯說,因爲他的問題非常基本,他可能不知道。最重要的是,對PHP一無所知的其他人可能會偶然發現這一點。 – ashurexm