2013-05-01 65 views
0

我需要您的幫助,根據用戶輸入編譯動態ADODB SQL語句的最佳方法

如何編寫用戶定義的動態SQL查詢。

我在我的網頁上有4個文本字段。

var a = document.getElementById('prefix').value 
var b = document.getElementById('firstname').value 
var c = document.getElementById('middlename').value 
var d = document.getElementById('lastname').value 

如何使用javascript編譯和生成SQL語句,如果用戶填寫任一個文本框。

例如,前綴,姓氏和名字被填入:

SELECT * FROM TABLE WHERE PREFIX = a AND LASTNAME = d AND FIRSTNAME = b 

例如,名字和姓氏被填充

SELECT * FROM TABLE WHERE FIRSTNAME = b AND LASTNAME = d 

是否還有更好的過程,除了使用一堆if語句來檢查給定條件中的任何4條?

好像遍歷整個奇怪的if語句是多餘的。

感謝

回答

0

不能完全肯定我理解你的要求,但替代使用4 if語句將它們包含在你的SQL語句:

SELECT * 
FROM TABLE 
WHERE (PREFIX = a OR a = '') 
    AND (LASTNAME = d OR d = '') 
    AND (MIDDLENAME = c OR c = '') 
    AND (FIRSTNAME = b OR b = '') 

這樣,如果值是空的,它不會搜索它們。

+0

沒有找到一個或多個參數的給定值: – 2013-05-01 18:05:21

+0

SQL = \t 「SELECT * FROM tbl_rssims」 \t \t \t + \t 「WHERE」 \t \t \t + \t 「(FIRSTNAME = 」+姓名+「 或」 +姓名+「=」')「 \t \t \t + \t」AND(LASTNAME =「+ lastname +」OR「+ lastname +」='')「 – 2013-05-01 18:06:37

+0

@JohnSmith - 似乎適用於我:http:// sqlfiddle .com /#!2/d7862/3 - 我唯一的猜測與你上面的評論是你需要把單引號圍繞你的領域(即LASTNAME ='「+ las tname +「'...雖然要小心,但這種方法很容易受到SQL注入的影響。最好的祝福。 – sgeddes 2013-05-01 21:45:07

相關問題