-1

我正在使用 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;

问题似乎出在我的代码的这一部分。

4

3 回答 3

1

您仅user在查询中选择。应该*改为吗?

SELECT user FROM users WHERE user LIKE '$in%'
->
SELECT * FROM users WHERE user LIKE '$in%'
于 2013-01-14T10:32:03.327 回答
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 注入的功能

于 2013-01-14T10:33:52.057 回答
0

您只是user从数据库中选择并$msg$nt[name]

您的查询至少应该是

"SELECT user,name,id FROM users WHERE user LIKE '$in%'"
于 2013-01-14T10:34:34.770 回答