Php 根据登录的用户查看休假详细信息

Php 根据登录的用户查看休假详细信息,php,html,mysql,database,phpmyadmin,Php,Html,Mysql,Database,Phpmyadmin,我制作了一个员工信息系统,他们可以在其中申请休假并查看休假状态。问题是,当员工想要查看他的休假时,他可以看到申请休假的每个人 下面是一个例子,登录的用户是Jane Smith,当我去查看我的假期时,我看到的是: 因此,基本上,我试图根据登录的用户显示休假。我的系统中也有两个表,employee和leaves 员工表: 离开表格: 我为我的员工信息系统编写了一个会话代码。我想我需要加入我的会话代码和我的视图代码来回答我的问题。问题是,我不知道如何将两者结合起来 下面是我为员工信息系统编写的会

我制作了一个员工信息系统,他们可以在其中申请休假并查看休假状态。问题是,当员工想要查看他的休假时,他可以看到申请休假的每个人

下面是一个例子,登录的用户是Jane Smith,当我去查看我的假期时,我看到的是:

因此,基本上,我试图根据登录的用户显示休假。我的系统中也有两个表,employee和leaves

员工表:

离开表格:

我为我的员工信息系统编写了一个会话代码。我想我需要加入我的会话代码和我的视图代码来回答我的问题。问题是,我不知道如何将两者结合起来

下面是我为员工信息系统编写的会话代码:

<?php

session_start();
ob_start();

//Include the database connection file
include "database_connection.php"; 

//Check to be sure that a valid session has been created
if(isset($_SESSION["VALID_USER_ID"]))
{

    //Check the database table for the logged in user information
    $check_user_details = mysql_query("select * from `employee` where `username` = '".mysql_real_escape_string($_SESSION["VALID_USER_ID"])."'");
    //Validate created session
    if(mysql_num_rows($check_user_details) < 1)
    {
        session_unset();
        session_destroy();
        header("location: login.php");
    }
    else
    {

    //Get all the logged in user information from the database users table
    $get_user_details = mysql_fetch_array($check_user_details);

    $user_id = strip_tags($get_user_details['id']);
    $fullname = strip_tags($get_user_details['fullname']);
    $username = strip_tags($get_user_details['username']);
    $email = strip_tags($get_user_details['email']);
    $address = strip_tags($get_user_details['address']);
    $gender = strip_tags($get_user_details['gender']);
    $contact = strip_tags($get_user_details['contact']);
    $user_access_level = strip_tags($get_user_details['user_levels']);
    $passwd = strip_tags($get_user_details['password']);
    $picture = strip_tags($get_user_details['picture']);
    $sickleave = strip_tags($get_user_details['sickleave']);
    $vacationleave = strip_tags($get_user_details['vacationleave']);
?>

以下是我的休假代码:

<div class="container">
<div class="page-header">
<h3>My Leaves</h3>
            <div class="table-responsive">
                <table class="table">
                    <tr>
                        <th>Employee Name</th>
                        <th>Phone</th>
                        <th>Email</th>
                        <th>From</th>
                        <th>To</th>
                        <th>Reason</th>
                        <th>Status</th>
                    </tr>
                <?php
                    include ('database.php');
                    $result = $database->prepare ("SELECT * FROM leaves order by leaveno DESC");
                    $result ->execute();
                    for ($count=0; $row_message = $result ->fetch(); $count++){
                ?>
                    <tr>
                        <td><?php echo $row_message['full_name']; ?></td>
                        <td><?php echo $row_message['phone']; ?></td>
                        <td><?php echo $row_message['email']; ?></td>
                        <td><?php echo $row_message['fromdate']; ?></td>
                        <td><?php echo $row_message['todate']; ?></td>
                        <td><?php echo $row_message['reason']; ?></td>
                        <td><?php echo $row_message['status']; ?></td>
                    </tr>
                    <?php   }   ?>

                    </table>

                    <a href="home"><button type="button" class="btn btn-primary"><i class="glyphicon glyphicon-arrow-left"></i> Back</button></a>   
                </div>
            </div>
        </div>  
    </div>
</div>

我的叶子
员工姓名
电话
电子邮件
从…起
到
理由
地位
所以正如我所说的,我不知道如何合并这两个代码。我知道有很多教程,但我真的很难理解它们


我还知道会话代码中的mysql已被弃用。我有计划在将来改变它们。与此同时,我必须想办法做到这一点。任何帮助都将不胜感激。

由于您正在会话变量
$\u session[“VALID\u user\u ID”]
中存储登录用户的用户名,因此您可以使用它,直到会话处于活动状态。您可以在离开视图代码中使用它

在“保留视图代码”中,使用以下代码:

$stmt = $conn->prepare("SELECT leaves.* FROM leaves INNER JOIN employee ON employee.id = leaves.user_id WHERE employee.username = ?");
$stmt->bind_param("s", $_SESSION["VALID_USER_ID"]);

通过这种方式,您将获得用户名为
$\u SESSION[“VALID\u user\u ID”]

FWIW的用户的所有请假申请,如果我正在构建请假表,我想它可能是这样的。为了清晰起见,我在这里使用了枚举,通常我更喜欢避免使用它们

CREATE TABLE leaves
(leave_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
,employee_id INT NOT NULL
,from_date DATE NOT NULL
,from_type ENUM('all day','morning','afternoon') NOT NULL DEFAULT 'all day'
,to_date DATE NOT NULL
,to_type ENUM('all day','morning','afternoon') NOT NULL DEFAULT 'all day'
,reason VARCHAR(255) NOT NULL DEFAULT '';
,status ENUM('pending','approved','declined') NOT NULL DEFAULT 'pending'
);

我想我可能也有休假类型,但你明白了。

我得到了
解析错误:语法错误,意外'
以下是我所做的
$result=$database->prepare(“SELECT leaves.*FROM leaves internal JOIN employee.id=leaves.user\id WHERE employee.username=$\u SESSION[“VALID\u user\u id”])
非常感谢您的帮助,因为出现错误是因为“逗号”。尝试在单个倒逗号(')中写入有效的\u USER\u ID,比如“VALID\u USER\u ID”,或者使用字符串连接,来吧。更改它,即使只更改为mysqli。这很容易做到;“大概不会超过一个小时(包括准备好的和装订好的语句的构建)@草莓说,我会试试。此外,除了
离开id
用户id
从日期开始
到日期
原因
,和
状态
(尽管您可能还想考虑如何计算半天)