PHP выбрать из оператора, когда не работает - PullRequest
0 голосов
/ 07 октября 2018

У меня есть реальная проблема с этим 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!";
}
?>

Он выведет переменные из первого оператора выбора, но второй оператор выдаст только «Нет результатов, соответствующих вашему поиску!».Я попробовал утверждение с фактическими словами (не переменными) в php моего администратора, и оно работает хорошо, однако, когда оно на сайте ..... ничего.Я думаю, это как-то связано с переменными, но на самом деле я понятия не имею, поэтому любая помощь будет оценена!Большое спасибо (и я знаю, что переменные открыты для инъекций SQL, но этот сайт является лишь доказательством концепции:)

Ответы [ 2 ]

0 голосов
/ 07 октября 2018

Попробуйте, я сделал несколько настроек, чтобы он мог работать

<?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_array($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_array($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!";
}
?>
0 голосов
/ 07 октября 2018

Для второго оператора SQL необходимо использовать % в сочетании с оператором LIKE.% - Знак процента представляет ноль, один или несколько символов

Для более глубокого понимания вы можете перейти по этой ссылке: Оператор SQL LIKE

Изменить второй SQLутверждение вроде следующего.Я думаю, что это будет работать, как вы ожидаете.

$sql = "SELECT * FROM posts WHERE username LIKE '%$follow%'";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...