我正在使用AJAX和MySQL组合搜索数据库并在表格中显示结果。不幸的是,它不会回应数据库的结果,但代码已找到它。
$in=$_GET['txt'];
$msg="";
if(strlen($in)>0 and strlen($in) <20 ) {
$t=mysql_query("SELECT user FROM users WHERE user LIKE '$in%'");
while($nt=mysql_fetch_array($t)) {
$msg.=$nt[name]."->$nt[id]<br>";
}
}
echo $msg;
这个问题似乎出现在我的代码中。
答案 0 :(得分:1)
您只在查询中选择user
。它应该是*
吗?
SELECT user FROM users WHERE user LIKE '$in%'
->
SELECT * FROM users WHERE user LIKE '$in%'
答案 1 :(得分:1)
您选择了user
但是要显示查询未返回的name
,所以:
$in = mysql_real_escape_string($_GET['txt']);
$msg = '';
if(strlen($in) > 0 && strlen($in) < 20){
$t = mysql_query("SELECT id, name
FROM users
WHERE user
LIKE '%$in%'");
while($nt = mysql_fetch_array($t)){
$msg .= $nt['name'] . "->" . $nt['id'] . "<br />";
}
}
echo $msg;
请注意,我添加了mysql_real_escape_string()
函数来阻止mysql注入
答案 2 :(得分:0)
您只是从数据库中选择user
并将$msg
与$nt[name]
连接起来
您的查询至少应该是
"SELECT user,name,id FROM users WHERE user LIKE '$in%'"