自动完成,MYSQL,PHP

时间:2013-09-24 14:43:35

标签: php mysql autocomplete

我一直在努力实现这一点,代码似乎没有起作用。 我希望自动完成与数据库中的名称一起使用。看起来像我正在连接到数据库,但自动完成不起作用。
这里是。

表单jquery

 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
 <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" />

    <script type="text/javascript">
            $(document).ready(function(){
                $("#name").autocomplete({
                    source:'search.php',
                    minLength:1
                });
            });
    </script>

这是表格

<form action="search.php" method="GET">
Last Name : <input type="text" id="First_Name" name="query" />
<input type="submit" value="Search" />
</form>

这是search.php

<?php
$host="localhost"; // Host name
$username="username"; // Mysql username
$password="password"; // Mysql password
$db_name="ambassador"; // Database name


$con = mysql_connect($host,$username,$password)   or die(mysql_error());
mysql_select_db($db_name, $con)  or die(mysql_error());

$q = strtolower($_GET["q"]);
if (!$q) return;

$sql = "select DISTINCT First_Name as First_Name from First_Name where First_Name      LIKE     '%$q%'";
$rsd = mysql_query($sql);
while($rs = mysql_fetch_array($rsd)) {
$cname = $rs['First_Name'];
echo "$cname\n";
}
?>

1 个答案:

答案 0 :(得分:0)

我会说你有错误的表名,除非它真的是“First_Name”......

但是让我问你:如果有人输入“'; SHOW TABLES”这个值会怎么样?

http://www.php.net/manual/en/security.database.sql-injection.php