2011-01-13 123 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