0

我正在尝试将 MySQl 数据库中的配置文件与放入我的可放置 div 的名称和技能组进行匹配,请参阅此处。我遇到了两个问题,一个是mysql_fetch_array() expects parameter 1 to be resource, boolean given我认为我的查询返回错误的错误。这将我带到另一个问题,我的 $data 不匹配任何东西。如何将放入可放置 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. 对于更好地匹配我的查询并让它返回某些内容的任何知识或想法,我将不胜感激。以及一般的任何提示。

4

1 回答 1

2

您需要为语句LIKE中的每一列执行一次,然后选择其中一个或将它们组合在一起。百分号是通配符。WHEREANDOR%

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

您还应该避免使用mysql_*PHP 扩展,因为它们已被弃用;请改用PDOmysqli。除了使用不推荐使用的扩展之外,您的代码还容易受到 SQL 注入攻击。在将数据粘贴到查询中之前,您应该始终从请求变量中过滤数据。

于 2012-11-03T03:59:12.317 回答