2013-08-22 62 views
2

我試圖找出如何讓改變查詢 示例(HTML)輸出新的查詢來自晶

<form action="change.php" method="POST" name="Update"> 
<table> 
    <tr> 
    <td> 
     <input type="text" value="Enter New Criteria" name="where" > 
     <input type="text" value="Enter New Criteria" name="where2" > 
    </td> 
    </tr> 
    <tr> 
    <td align="center" style="font-family:Calibri"> 
    <input type="submit" value="Search"/> 
    </tr> 
</table> 

SQL查詢形式

$Query = "SELECT order_number 
      FROM order_header 
      WHERE (order_number LIKE **'%CHANGE VALUE HERE%'** 
      OR order_number LIKE **'%CHANGE VALUE HERE%'** 

我怎麼會去這樣做那我是一個完整的菜鳥,但我在努力。我試過搜索,但也許我沒有使用正確的關鍵詞。

+0

嘗試使用準備聲明 – bansi

回答

1

使用$_POST['where']$_POST['where2']代替%CHANGE VALUE HERE%。更多信息:http://php.net/manual/en/reserved.variables.post.php

例如:

$Query = "SELECT order_number 
      FROM order_header 
      WHERE (order_number LIKE '$_POST[where]' 
      OR order_number LIKE '$_POST[where2]')"; 

當你得到它的工作,有一個關於SQL注入讀:http://php.net/manual/en/security.database.sql-injection.php

+0

這假定您的PHP代碼位於頁面'change.php'上。 –

+0

注意:代替查詢語句引號,值的正確語法如下:''$ _POST [where2]'',而不是通常的$ _POST ['where2']'。小心,這很混亂! – ygesher

+0

@jegesh好點。我會調整我的答案。 –

0

嘗試:

$where = $_POST['where']; 
$where2 = $_POST['where2']; 

$Query = "SELECT order_number 
      FROM order_header 
      WHERE (order_number LIKE '%whereParameter%' 
      OR order_number LIKE '%where2Partameter%'" 

$Query = str_replace("whereParameter", $where, $QueryTemplate); 
$Query = str_replace("where2Parameter", $where2, $QueryTemplate); 
+0

爲什麼不只是在WHERE語句中使用'$ where'和''where2''作爲值?不需要添加額外的步驟,可能會出現語法錯誤並且沒有附加價值。 – ygesher

+0

非常有效的一點!指出。我會把所有這些建議都提供給大家,讓我們回到你身邊。 – eternityhq