Php 为什么在同一页面上显示多个配置文件?
在我的个人资料页面中,我为我的用户设置了一个个人资料图像系统,当多个用户登录时,网站会在一个页面上显示所有的个人资料图片,而不是单独会话的个人图像。有人能告诉我我做错了什么吗?提前谢谢 PROFILE.PHP:Php 为什么在同一页面上显示多个配置文件?,php,mysql,Php,Mysql,在我的个人资料页面中,我为我的用户设置了一个个人资料图像系统,当多个用户登录时,网站会在一个页面上显示所有的个人资料图片,而不是单独会话的个人图像。有人能告诉我我做错了什么吗?提前谢谢 PROFILE.PHP: <?php session_start(); include 'dbh.php'; ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <ti
<?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注入。请研究如何使用存储过程。非常感谢。当我刚刚学会编码,有人发布了更好的内容并解释了原因时,这是非常有用的。多谢。