2011-01-13 63 views
2

我目前使用jQuery的ajax功能或任何他們稱之爲。從mysql數據庫加載數據。它的工作正常,但是其中一個內置功能是加載退格時按下數據庫上的所有數據,並且文本框中沒有任何字符。使用jquery從mysql數據庫加載數據

這裏是我的查詢:

SELECT * FROM prod_table WHERE QTYHAND>0 AND PRODUCT LIKE '$prod%' OR P_DESC LIKE '$desc%' OR CATEGORY LIKE '$cat%' 

正如你看到的,我只希望加載的手頭大於0的數量的產品。

我使用這個代碼傳達給其上有查詢的PHP文件:

$('#inp').keyup(function(){ 


       var inpval=$('#inp').val(); 

      $.ajax({ 
       type: 'POST', 
       data: ({p : inpval}), 
      url: 'querys.php', 
      success: function(data) { 
      $('.result').html(data); 

      } 





     }); 

    }); 

是否可以同時過濾,使其輸出,這樣,當我按退格鍵和有數據沒有人留下。唯一要顯示的產品是那些數量大於0的產品?

+0

你可以在成功塊中做'alert(data)`嗎? – pltvs 2011-01-13 14:50:36

回答

2

我認爲,所有你需要做的就是到您的查詢更改爲:

SELECT * 
FROM prod_table 
WHERE QTYHAND>0 
AND (
    PRODUCT LIKE '$prod%' 
    OR P_DESC LIKE '$desc%' 
    OR CATEGORY LIKE '$cat%' 
) 

不是100%肯定,如果它是在SQL相同,但多數情況下,AND優先於OR。所以,你的原始查詢會讀到這樣:

WHERE (... AND ...) OR ... OR ... 

現在,如果你有一個空字符串,然後"something LIKE '%'"總會匹配,只有一個OR必須匹配,包括在結果集中的記錄。

+1

好,非常感謝。 – 2011-01-13 14:54:13

相關問題