我正在使用php进行一个简单的搜索。我试图使用内部联接和类似的方式显示来自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";
}
}发布于 2019-01-18 10:43:24
列名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发布于 2019-01-18 11:01:28
也许是个愚蠢的问题。但是,如果使用WHERE子句,则关键字字段可能只包含整个字段中的关键字。但是,在您的联接中,您是与同一字段完全匹配的联接。
我得到的是,如果你有两个关键字字段,其中包含注释-例如,那么他们为什么要加入一个完全匹配?如果删除where子句,那么是否返回任何结果?
https://stackoverflow.com/questions/54252252
复制相似问题