3

我有一个简单的搜索脚本来搜索应该返回与属于该用户的搜索查询匹配的所有数据行的数据库,但是我的查询(如下)正在返回每个用户的行。知道如何解决这个问题吗?

SELECT * FROM tablename 
WHERE title LIKE '%" . $q . "%' 
OR text LIKE '%" . $q . "%' 
AND user='$user'

旁注:这是在 PHP 中执行的,因此$q是保存查询的变量。

4

3 回答 3

2

你试过这个吗?

"SELECT * FROM tablename WHERE (title LIKE '%".$q."%' OR text LIKE '%".$q."%') AND user='$user'"
于 2012-11-18T03:50:22.553 回答
0

在尝试 SQL 查询之前清除任何空白的 $user 变量

于 2012-11-18T03:50:30.663 回答
0

试试这个:

<?php 
...
echo "SELECT * FROM tablename 
WHERE title LIKE '%" . $q . "%' 
OR text LIKE '%" . $q . "%' 
AND user='$user'";

看看输出是什么样子的。

顺便说一句,你可能会逃脱

WHERE title LIKE '%$q%'

(即,不必连接查询字符串)。这将使您的代码更简洁并减少错误(由于缺少句点/引号)。

于 2012-11-18T03:55:58.623 回答