我对这个 php 代码有真正的麻烦:
<?php
$sessionid = $_SESSION['id'];
echo $sessionid;
$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'];
echo $follow;
echo $loc;
}
}
$sql = "SELECT * FROM posts WHERE username LIKE '$follow'";
$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>';
}
}else {
echo "There are no results matching your search!";
}
?>
它将输出第一个 select 语句中的变量,但第二个语句仅输出“没有与您的搜索匹配的结果!”。我已经在我的管理员的 php 中尝试了使用实际单词(不是变量)的语句,它运行良好,但是当它在网站上时......什么都没有。我想这与变量有关,但我真的不知道,所以任何帮助将不胜感激!非常感谢 (我知道变量对 SQL 注入(inject)是开放的,但这个网站只是一个概念证明:)
最佳答案
对于第二个 SQL 语句,您需要将 %
与 LIKE 运算符结合使用。
%
- 百分号代表零个、一个或多个字符
要更深入地了解,您可以点击此链接:SQL LIKE Operator
如下所示更改第二个 SQL 语句。我认为它会如您所期望的那样工作。
$sql = "SELECT * FROM posts WHERE username LIKE '%$follow%'";
关于javascript - PHP select from 语句when,不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52685263/