我尝试将元数据标签连接到用户,我得到了它们之间的关系,但是当我搜索标签时,我得到了大量的输出。我有一个名为Chips的标签,但输出是17个不同的用户。没有人对这个词或标签没有任何反应。
要清除我尝试过的内容: 我正在制作可以搜索用户名,座右铭和标签的搜索功能。 http://gyazo.com/d334447761152394ca1eecc392c35e92
<?php
$varr = preg_replace("/%u([0-9a-f]{3,4})/i","&#x\\1;",urldecode($url));
$varr = html_entity_decode($url,null,'UTF-8');
$query = $_GET['query'];
$min_length = 2;
if(strlen($query) >= $min_length){
$query = htmlspecialchars($query);
$query = mysql_real_escape_string($query);
$raw_results = mysql_query("SELECT * FROM users, user_tags
WHERE (`username` LIKE '%".$query."%') OR (`tag` LIKE '%".$query."%') OR (`motto` LIKE '%".$query."%')") or die(mysql_error());
$num_rows = mysql_num_rows($raw_results);
?>
答案 0 :(得分:2)
这是您的查询:
SELECT *
FROM users, user_tags
WHERE . . .
问题与您的WHERE
条款无关。它是FROM
中的逗号。简单规则:从不在FROM
子句中使用逗号。 始终使用明确的JOIN
语法。
正确的语法看起来更像这样(但取决于你的列名):
SELECT *
FROM users u JOIN
user_tags ut
ON u.userId = ut.userId
WHERE . . .