使用LIKE与返回的ajax数据进行查询不匹配

时间:2012-11-03 03:54:53

标签: php javascript jquery mysql

我正在尝试将MySQl数据库中的配置文件与放入我的可放置div See HERE中的名称和技能组进行匹配。我遇到两个问题,一个是错误mysql_fetch_array() expects parameter 1 to be resource, boolean given我相信这意味着我的查询返回false。这让我遇到了另一个问题,我的$数据与任何东西都没有匹配。如何将放入droppable div的名称和技能与我的数据库中的名称和技能相匹配?

if (isset($_POST['data'])){
$data = $_POST['data'];

$query = mysql_query("SELECT * FROM gradesheet WHERE 'firstname','lastname','grade' LIKE '{$data}'");

    while($row=mysql_fetch_array($query)){
            $firstname=$row['firstname'];
            $lastname=$row['lastname'];
            $gradet=$row['grade'];
            $user_id=$row['user_id'];

echo $firstname;

我使用%Like%认为它会比MATCH AGAINST给我更好的机会。我会很感激任何关于更好地匹配我的查询并让它返回某些内容的知识或想法。以及一般的任何提示。

1 个答案:

答案 0 :(得分:2)

您需要为LIKE语句中的每个列执行WHERE,并选择ANDOR将它们组合在一起。百分比符号%是通配符。

SELECT * FROM gradesheet 
WHERE 'firstname' LIKE '%term%' 
    OR 'lastname' LIKE '%term%' 
    OR 'grade' LIKE '%term%'

您还应该避免使用mysql_* PHP扩展程序deprecated;请改用PDOmysqli。除了使用不推荐使用的扩展之外,您的代码还可以进行SQL注入攻击。在将数据粘贴到查询中之前,您应始终从请求变量中过滤数据。