MySQL查询返回每个用户的行

时间:2012-11-18 03:47:26

标签: php mysql

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

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

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

3 个答案:

答案 0 :(得分:2)

你试过这个吗?

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

试试这个:

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

看看输出是什么样的。

顺便说一句,你可以侥幸逃脱

WHERE title LIKE '%$q%'

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