【问题标题】:Keyword search using AJAX in MySQL database在 MySQL 数据库中使用 AJAX 进行关键字搜索
【发布时间】:2012-12-28 07:26:03
【问题描述】:

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

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

【问题讨论】:

标签: php mysql ajax database echo


【解决方案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】:

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

    SELECT user FROM users WHERE user LIKE '$in%'
    ->
    SELECT * FROM users WHERE user LIKE '$in%'
    

    【讨论】:

    • 在查询字符串中写字段名而不是 *
    【解决方案3】:

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

    您的查询至少应该是

    "SELECT user,name,id FROM users WHERE user LIKE '$in%'"
    

    【讨论】:

      猜你喜欢
      • 2014-08-21
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      • 1970-01-01
      • 2013-06-05
      相关资源
      最近更新 更多