Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么在同一页面上显示多个配置文件?_Php_Mysql - Fatal编程技术网

Php 为什么在同一页面上显示多个配置文件?

Php 为什么在同一页面上显示多个配置文件?,php,mysql,Php,Mysql,在我的个人资料页面中,我为我的用户设置了一个个人资料图像系统,当多个用户登录时,网站会在一个页面上显示所有的个人资料图片,而不是单独会话的个人图像。有人能告诉我我做错了什么吗?提前谢谢 PROFILE.PHP: <?php session_start(); include 'dbh.php'; ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <ti

在我的个人资料页面中,我为我的用户设置了一个个人资料图像系统,当多个用户登录时,网站会在一个页面上显示所有的个人资料图片,而不是单独会话的个人图像。有人能告诉我我做错了什么吗?提前谢谢

PROFILE.PHP:

<?php
session_start();
include 'dbh.php';
?>


<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Yahbang</title>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<header class="header_profile">
    <nav>
        <ul>

        </ul>
    </nav>
    <form class="logout" action='include/logout.inc.php'>
        <button>Log out</button>
        </form>
</header>

<?php


    $sql = "SELECT * FROM user";
    $result = mysqli_query($conn, $sql);
    if (mysqli_num_rows($result) > 0) {
        while ($row = mysqli_fetch_assoc($result)) {
        $email = $row['email'];
        $sqlImg = "SELECT * FROM profileImg WHERE email='$email'";
        $resultImg = mysqli_query($conn, $sqlImg);
        while ($rowImg = mysqli_fetch_assoc($resultImg)) {
            echo "<div class='userProfileImage'>";               
                if ($rowImg['status'] == 0 ) {
                    echo "<img src='images/profile".$id.".jpg'>";
                } else {
                    echo "<img src='images/profile_default.jpg'>";
                }
                echo "<p>".$row['first']."</p>";
            echo "</div>";
        }
    }   
}       else {
            echo "There are no users yet!";
        }



    if (isset($_SESSION['id'])) {
        echo "<form action='include/uploadProfile.inc.php' method='POST' enctype='multipart/form-data'>
<input type='file' name='file'>
<button type='submit' name='submit'>UPLOAD</button>
    </form>";
    } else {
        header("Location: ../index.php");
    }
?>






<footer class="footer_profile">
    <nav>
        <ul>

        </ul>
    </nav>
</footer>
</body>
</html>

雅邦
注销
注意SQL命令

$sql = "SELECT * FROM user";
在末尾添加一个
限制0,1
,如
$sql=“SELECT*FROM user LIMIT 0,1”然后只得到第一个结果。
如果编写SQL以便指定结果:

$sql = "SELECT * FROM user WHERE `id`='$id' LIMIT 0,1";

看看SQL语句

您的个人资料页面URL看起来像这样吗

profilepage.php?id=5

如果没有,您可能想添加它,因为这样您就可以轻松地编辑第一个查询

$sql = "SELECT * FROM user";
然后做一些类似的事情

$id= $_GET['id'];
$sql = "SELECT * FROM user WHERE id='$id'";

您可以在配置文件的其余部分继续使用该逻辑,否则,您将循环使用用户表中的所有内容。

清楚地告诉我们在同一台计算机上应该发生什么,以及您所说的“当多个用户登录”是什么意思?另外,在
header
调用之后,您应该有
exit
s。您使用第一条SQL语句循环所有用户,第二条SQL语句使用您在第一条语句中检索到的每封电子邮件,然后while循环为第二条查询中检索到的每一行创建一个图像。基本上,你要检索每个用户,然后遍历每个用户并获取他们的电子邮件,然后获取每个用户的图像。列出所有配置文件,因为这就是你编写脚本的方式。您应该根据存储在会话中的id查询用户表(并使用join来获取映像,而不是单独的查询)。此外,您还可以进行SQL注入。请研究如何使用存储过程。非常感谢。当我刚刚学会编码,有人发布了更好的内容并解释了原因时,这是非常有用的。多谢。