我目前正在使用 jquery 的 ajax 功能或任何他们所说的功能。从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 的产品?
最佳答案
我认为您所要做的就是将查询更改为:
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
即可将记录包含在结果集。
关于php - 使用jquery从mysql数据库加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4681297/