猿问

如何让我的代码只回显一次而不是两次?

一旦满足要求,我的代码回显Hey或Hello两次。


这应该检查一个人是否有上传的东西,这取决于他们是否有或没有消息显示。


$sql = "SELECT * FROM users";

$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {

    while ($row = mysqli_fetch_assoc($result)) {

        $sqlImg = "SELECT * FROM users WHERE idUsers='$current'";

        $resultImg = mysqli_query($conn, $sqlImg);

        while ($rowImg = mysqli_fetch_assoc($resultImg)) {

            if ($rowImg['profile_img'] == 0) {

                echo "hey";

            } else {

                echo "Hello";

            }

        }

    }

}

我希望输出回显一次,但实际输出回显两次。


慕工程0101907
浏览 130回答 1
1回答

跃然一笑

你不需要两个循环。外循环为表中的每个用户运行,无论他们是否匹配$current。对于他们中的每一个,您正在执行另一个查询,该查询只是获取$current用户并回显他们的状态。如果idUsers是唯一键,您甚至不需要任何循环。只需执行一个查询并获取该行。您还应该使用准备好的语句来防止 SQL 注入。$stmt = $conn->prepare("SELECT profile_img FROM users WHERE idUsers = ?");$stmt->bind_param("s", $current);$stmt->execute();$result = $stmt->get_result();$rowImg = $result->fetch_assoc();if ($rowImg['profile_img'] == 0) {    echo "hey";} else {    echo "Hello";}
随时随地看视频慕课网APP
我要回答