[英]How to display user accounts picture and name inside a box from database in html page using php and mysqli?
[英]How to SELECT and display name of active user from MySQLI database
我正在创建一个基本的地址簿站点。 我希望顶部的导航栏显示当前登录的用户。我已经找到了从 MySQLI 数据库中检索名称的代码,但问题是它显示了数据库中每个人的名字。 我不确定缩小范围以仅显示当前登录用户的代码是什么。 我已经将它设置为您使用电子邮件和密码登录的位置,因此我需要找到一种方法来SELECT
名称WHERE
the email =(数据库中当前活动用户的电子邮件),但我不知道该怎么做。
如果只有一个用户,一切正常。 问题是当我添加用户时,它只会将每个用户名显示为一个长句。 我试过SELECT * FROM users WHERE email = '$_POST['email']'
; SELECT * FROM users WHERE email = '$row['email']'
; 我使用会话登录并尝试$_SESSION['loggedInUser']
似乎没有任何效果。 什么工作只是SELECT * FROM users
; 这显示得很好,但会为users
显示数据库中的每个名称。
<?php
session_start();
?>
<?php
if( $_SESSION['loggedInUser'] ) {
include('includes/connection.php');
$query2 = "SELECT * FROM users";
$result2 = mysqli_query( $conn, $query2);
?>
<ul class="nav navbar-nav">
<li><a href="clients.php">My Clients</a></li>
<li><a href="add.php">Add Client</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<p class="navbar-text">Welcome,
<?php
if( mysqli_num_rows($result2) > 0 ) {
while( $row = mysqli_fetch_assoc($result2) ) {
$name = $row['name'];
echo "<span style='color: #8F8F8F;'>" . $name . "</span>";
}
}
mysqli_close($conn);
?>
!</p>
您尝试通过包含 WHERE 子句来缩小所选行的范围是正确的。 但是,我无法确定您是如何指定电子邮件地址的,因为您没有显示完整的代码。 在任何情况下,当您尝试将用户的输入字面意思包含为 SQL 查询的一部分时,您都对 SQL 注入持开放态度(请研究此主题)。 你应该依赖准备好的语句:
$query2 = "SELECT * FROM users"; /* this selects ALL users */
$query2 = "SELECT * from users WHERE email = 'john@whonowsehere.com'"; /* select one specific user */
$query2 = "SELECT * from users WHERE email = ?"; /* select one specific user -- details to be specified later */
/* create a prepared statement that will avoid SQL injection: */
$stmt = mysqli_prepare($conn, $query2);
/* $email is obtained from session or $_POST or somewhere else */
mysqli_stmt_bind_param($stmt, "s", $email); /* "s" means this parameter is a string */
mysqli_execute($stmt);
$result = $stmt->get_result();
$row = $result->fetch_assoc();
mysqli_close($stmt);
这很简单,只需获取存储在会话变量中的 user_id(如果您已存储它),请在下面编写查询 SELECT * FROM users WHERE user_id = $userId
其中 user_id 是用户表中的唯一列, $userId 是存储会话变量 user_id 的变量
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.