我正在使用php进行简单的搜索。我正在尝试使用INNER JOIN和LIKE显示2个表中的数据。使用关键字我需要检查关键字是否存在于表之一上。我的问题是它没有显示任何数据。
它还显示警告Notice: Trying to get property 'num_rows' of non-object
谢谢。
示例代码
$keyword = $_POST['keyword'];
if($keyword != ""){
$sql = "SELECT * FROM history_search INNER JOIN history_subs ON history_search.keyword = history_subs.keyword WHERE keyword LIKE '%$keyword%'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo $row['keyword'];
}
} else {
echo "0 results";
}
}
答案 0 :(得分:1)
列名keyword
在两个表中都显示不明确
尝试:
SELECT *
FROM history_search
INNER JOIN history_subs
ON history_search.keyword = history_subs.keyword
WHERE history_search.keyword LIKE '%$keyword%' -- Added a table reference here
答案 1 :(得分:0)
也许是一个愚蠢的问题。但是,如果您在WHERE子句中使用LIKE,则关键字字段可以在整个字段中仅包含该关键字。但是,在您加入时,您将作为同一字段的完全匹配加入。
我要了解的是,如果您有2个包含注释的关键字字段,那么为什么它们要完全匹配呢?如果删除where子句,则返回任何结果?