繁体   English   中英

如何从 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM