Php 当mysql“U查询有”时,Ajax响应不起作用;及;在里面
这是我的问题简短版本: 这是有效的:Php 当mysql“U查询有”时,Ajax响应不起作用;及;在里面,php,jquery,mysql,sql,ajax,Php,Jquery,Mysql,Sql,Ajax,这是我的问题简短版本: 这是有效的: $query = mysql_query("SELECT * FROM `some_table` WHERE IF (LENGTH('$some_variable') > 0, `$other_variable` LIKE '%$some_variable%' , 0)"); $query = mysql_query("SELECT *
$query = mysql_query("SELECT * FROM `some_table`
WHERE IF (LENGTH('$some_variable') > 0, `$other_variable` LIKE
'%$some_variable%' , 0)");
$query = mysql_query("SELECT *
FROM `some_table`
WHERE `something` = `some_other_thing` AND
IF (LENGTH('$some_variable') > 0, `$other_variable`
LIKE '%$some_variable%' , 0)");
我得到一个结果,用while将其打包成一个数组,并用json_encode将其发送回我的ajax文件,在那里我列出了结果。而且它工作得很好
但是当我向查询添加一个内容时,它只返回空的内容,因此这不起作用:
$query = mysql_query("SELECT * FROM `some_table`
WHERE IF (LENGTH('$some_variable') > 0, `$other_variable` LIKE
'%$some_variable%' , 0)");
$query = mysql_query("SELECT *
FROM `some_table`
WHERE `something` = `some_other_thing` AND
IF (LENGTH('$some_variable') > 0, `$other_variable`
LIKE '%$some_variable%' , 0)");
因此,有了和,事情就不起作用了,但只有在使用ajax的情况下,我的意思是,如果我只是简单地将数组打印出来,php工作得非常出色
提前谢谢
这是我的php的其余部分
while ($value = mysql_fetch_array($query)) {
$result[] = array
(
gyarto => $value['gyarto'],
termekcsalad => $value['termekcsalad'],
kiszereles => $value['kiszereles']
);
}
echo json_encode($result);
还有我的jquery:
$.ajax({
url:"updates/isu.php",
type:"POST",
data: form,
dataType: "json",
success: function(data) {
$.each(data, function(i)
{
$("#result table").append('<tr><td>'+data[i].gyarto+' '+data[i].termekcsalad+' '+data[i].kiszereles+'</td></tr>');
});
}
});
});
$.ajax({
url:“updates/isu.php”,
类型:“POST”,
数据:表格,
数据类型:“json”,
成功:功能(数据){
$。每个(数据、功能(i)
{
$(“#结果表”).append(“”+数据[i].gyarto+“”+数据[i].termekcsalad+“”+数据[i].kiszereles+”);
});
}
});
});
试试这个
$sql = "SELECT *, LENGTH('$some_variable') as 'length_of_var'
FROM some_table
WHERE something=some_other_thing AND
length_of_var > 0 AND
`$other_variable` LIKE '%$some_variable%';";
die($sql);//we will stop here and see how the query looks like.. If it's an AJAX request, you will need to check in your browser console. Use firebug or chrome developer tools.
$query = mysql_query($sql);
您还可以在sql字符串执行和共享之前记录它。这可以帮助您看到查询在执行之前的样子,然后我们可以修改它,然后编辑php代码来修复任何问题。您连接到SQL查询的一些变量可能是空字符串或null,等等
I think you are mixing php language in a mysql query.
尝试:
这里还有一个关于如何使用mysql\u fetch\u数组的示例
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
printf("ID: %s Name: %s", $row["id"], $row["name"]);
}
mysql_free_result($result);
在php中计算
$some_变量的长度,为什么使用mysqllength
?如果可以在PHP中检测到$some_variable
的长度大于0:
if (strlen($some_variable) > 0) {
mysql_query("
SELECT *
FROM `some_table`
WHERE `something` = `some_other_thing`
AND `$other_variable` LIKE '%$some_variable%'")
} else {
// do nothing because your where clause has condition like: something = another AND 0
// so for each row it's false
}
使用一些“合成”示例数据,查询“按假设”工作
但我怀疑该查询是否符合您的意图。
例如,如果$some_variable
为空,则在php端更容易测试该变量,并完全跳过查询-在这种情况下,任何记录都无法满足条件。您必须打印JSON以响应AJAX,打印JSON并查看其是否有效。您能向我们展示其余的php代码和AJAX代码吗?@11684我现在将发布它,第二个示例数据(最好是以插入到…值(…)
语句的形式)会很有帮助…@charlietfl但是在独立页面中,当查询使用“AND”时,它怎么可能纯粹是一个查询问题呢?一旦你明白自己做错了什么,你就可以下一步避免它time@mwangi这不适用于我的var长度应该是什么?这是一个错误的查询,您不能在WHERE
clause@Serijio对不起,还是不行,我真的认为是“和”从查询中删除,因为它不工作,$other\u变量
包含什么?静态strin或sql查询或字段名?也许它包含单引号或双引号?@Mr.Sam您能为我们提供结果SQL查询吗?只需运行带有sql字符串的echo$your_php\
$.ajax({url:“updates/isu.php”,键入:“POST”,数据:表单,数据类型:“json”,成功:函数(数据){//console.log(数据);$。每个(数据,函数(i){$(“#结果表”).append(''+data[i].gyarto+''+data[i].termekcsalad+''+data[i].kiszereles+'';}});当我用json_encode发回它时,它仍然不起作用。我什么也没有得到,但只有php它可以工作。。。我的意思是它和你写的一样,但是我需要一个“AND”在queryyes中是的,当然就像我说的,当我在standalon php页面上打印它时,它会返回好的结果
1, 1, 1, hello
3, 2, 2, hellboy