仅显示来自同一公司的用户

Show only user from the same company

我想问一下,当用户 Type=Chef logs into the website, in the Dashboard 只显示来自他公司外键 (fk_FirmaID) 的用户时,这怎么可能。我不知道如何处理它以仅显示特定公司。

这是我目前拥有的代码。当用户登录时,我将他的用户详细信息保存在 $_SESSION 中。更新了代码,因为我发错了。这是我的 database structure.

<?php
session_start();
require('config.php');
include('functions.php');
$sessionType = (!empty($_SESSION['type']))?$_SESSION['type']:null;
$sessionUsername = (!empty($_SESSION['username']))?$_SESSION['username']:null;
$sessionfkfirma = (!empty($_SESSION['fk_FirmaID']))?$_SESSION['fk_FirmaID']:null;
$msg = null;
$stmt = mysqli_query($link, "SELECT * FROM benutzer");



if(isset($_POST['modifySubmit'])) {
  $newname = $_POST['newname'];
  $userid = $_POST['userid'];
  $stmt = mysqli_query($link, "UPDATE benutzer SET username = '$newname' WHERE id = $userid");
  if($stmt){
    $msg = alert_success("Good Job, Buddy! The record has been updated successfully.");
  }else{
    $msg = alert_error();
  }
}

if(!empty($_GET['delete'])) { //
  $id = $_GET['delete'];
  $stmt = mysqli_query($link, "DELETE FROM benutzer WHERE id = $id");
  if($stmt) {
    $msg = alert_success("Good Job, Buddy! The record has been deleted sucessfully.");
  }else{
    $msg = alert_error();
  }
}


?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Panel</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="css/main.css">
  </head>
  <body>
    <div class="page-head">
      <center>
      <img src="logo.png" alt="logo" width="170px" height="170px">
    </center><br><br>
      <h1>Admin Panel</h1>
    </div>
    <div class="left">
      <center>
        <a href="welcome.php" class="btn btn-default">Go Back</a>
        <a href="adduser.php" class="btn btn-info">Create user</a>
      </center>
    </div>
    <br>
    <?php echo $msg; if(!empty($_GET['modify'])){ ?>
      <div class="modify-user text-center">
        <div class="row">
          <h4 class="text-center">Modify user</h4>
        </div>
        <table>
          <tr>
            <td>
                    <div class="form-group">
                        <form method="post" action="" onSubmit="return confirm('Are you sure you want to update this user?')">
                          <input type="hidden" name="userid" value="<?php echo $_GET['modify']; ?>">
                          <input type="text" name="newname" placeholder="Name / Vorname" class="text-center" value="<?php if(isset($_POST['modifySubmit'])){ echo $_POST['newname']; } ?>"><br><br>
                  <input type="submit" value="Save" class="btn btn-primary" name="modifySubmit">
                        </form>
                    </div>
                    </td>
                </tr>
            </table>
      </div>
    <?php } ?>
    <div class="table-responsive">
      <table class="table">
        <tr>
          <th>ID</th>
          <th>Name / Vorname</th>
          <th>Email</th>
          <th>Type</th>
          <th>Firma</th>
          <?php $row = mysqli_fetch_array($stmt);
          if(($sessionType == 'Admin') or ($sessionType == 'Chef')){ ?>
          <th>Modify</th>
          <?php
          if(($sessionType == 'Admin') or ($sessionType === 'Chef')){ ?>
            <th>Delete</th>
          <?php }} ?>
        </tr>
        <?php while($row = mysqli_fetch_array($stmt)){ ?>
          <tr>
            <td><?php echo $row['id']; ?></td>
            <td><?php echo $row['username']; ?></td>
            <td><?php echo $row['email']; ?></td>
            <td><?php echo $row['type']; ?></td>
            <td><?php echo $row['fk_FirmaID']; ?></td>
            <?php if(($sessionType == 'Admin') or ($sessionType == 'Chef') and ($sessionType == 'Mitarbeiter' or $sessionUsername != $row['username'])){ ?>
            <td><a href="panel.php?modify=<?php echo $row['id']; ?>">Modify</a></td>
            <?php } ?>
            <?php if(($sessionType == 'Admin') or ($sessionType == 'Chef')  and ($sessionType == 'Mitarbeiter' or $sessionUsername != $row['username'])){ ?>
              <td><a href="panel.php?delete=<?php echo $row['id']; ?>"  onclick="return confirm('Are you sure you want to delete this user?')">Delete</a></td>
            <?php } ?>
          </tr>
        <?php } ?>
      </table>
    </div>
  </body>
</html>


  

我认为这就是您要实现的目标!

$stmt = mysqli_query($link, "SELECT * FROM benutzer INNER JOIN firma ON benutzer.fk_FirmaID = firma.FirmaID");

您需要使用 JOIN 来连接两个表。在这里,INNER JOIN returns 只有那些记录在两个字段中都匹配的数据。它消除了结果的其余部分。