我似乎无法解决如何搜索(和显示)数据库中的多个单词。这是数据库列的图像
所有单独的位置:非洲|英国威尔士|我想在斯德哥尔摩和瑞典搜索相同的位置并显示它们,如果该列中只有一个单词,则以下代码适用,但如果有多个单词,则以下代码适用。
<?php
$sessionid = $_SESSION['id'];
$sql = "SELECT * FROM users WHERE id = '$sessionid';";
$rsults = mysqli_query($conn, $sql);
$resultsCheck = mysqli_num_rows($rsults);
if ($resultsCheck > 0) {
while ($row = mysqli_fetch_assoc($rsults)){
$follow = $row['follow'];
$loc = $row['places'];
}
}
$sql = "SELECT * FROM posts WHERE ext LIKE '$loc' OR username LIKE '$follow' ORDER BY `a_date` DESC LIMIT 4";
$rsults = mysqli_query($conn, $sql);
$resultsCheck = mysqli_num_rows($rsults);
if ($resultsCheck > 0) {
while ($row = mysqli_fetch_assoc($rsults)){
echo '<div class="posts">';
echo '<img class="img"src='.$row['img'].' width="1500px">';
echo '</div>';
echo '<div class="contain">';
echo '<div class="over">';
echo '<div class="username2">';
echo '<img src="focus.png" width="25px" height="25px" style="padding-right: 10px;">'.'<a href="./Profile.php?data='.$row['username'].'">'.$row['username'].'</a>'.'<img src="loc.png" width="25px" height="25px" style="padding-right: 5px; padding-left: 10px;">'.'<a href="./Location.php?data='.$row['ext'].'">'.$row['ext'].'</a>';
echo '</div>';
echo '<div class="content">';
echo $row['content'];
echo '</div>';
echo '</div>';
}
}
?>
我也知道这对sql注入开放,这只是概念的证明。谢谢您的帮助!!
最佳答案
如mysql中的运算符附带通配符,例如'%','_'等
您可以像这样使用mysql查询
$sql = "SELECT * FROM posts WHERE ext LIKE '%$loc%' OR username LIKE '$follow' ORDER BY `a_date` DESC LIMIT 4";
例如,如果$ loc ='canada',则无论该列包含'canada,abc'还是'abc,canada',该列都将返回所有具有'canada'的行。
关于php - 如何在数据库中搜索多个单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52773645/