根据用户登录的用户ID向用户显示作业

时间:2018-01-19 22:12:41

标签: php mysql

目前,我的网站能够显示管理员发布给所有登录用户的所有作业。但是我试图编辑我的代码,以便它只显示根据用户ID分配给每个用户的作业。在上一页中,您将为该用户创建一个作业,并且他们的用户ID将自动分配给该作业。

继承我向用户显示所有工作的代码:

html页面:

<?php
    if(!isset($_SESSION)) 
    { 
        session_start(); 
    } 
?>



<!DOCTYPE html>
<html>
    <head>
       <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Latest compiled and minified CSS -->

        <title>Tyre Hire</title>
        <link rel="stylesheet" type="text/css" href="css/mystyle.css"/>
    <!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    </head>
    <body>
<div class="container">
    <div class="row">
    <div class="col-xs-12">

        <header> 
            <img class="img-responsive" src ="images/Logo.png" alt ="logo"/>
        </header>

    </div>
    </div>

            <?php



            require_once ("config.inc.php");

try
    {
    $conn = new PDO(DB_DATA_SOURCE, DB_USERNAME, DB_PASSWORD);
    }

catch(PDOException $exception)
    {
    echo "Oh no, there was a problem" . $exception->getMessage();
    }




            if(!isset($_SESSION["username"]))
{
    //user tried to access the page without logging in
    header( "Location: add.php" );

}


if(isset($_SESSION["username"]))
{
    echo "Welcome, you are now logged in as <b>".$_SESSION['username'] . "</b>,with the status:<b>". $_SESSION['occupation'] ." </b><img class='clientView' src='images/loginIcon.png' alt='client'>"; }
    else { 
    echo "You are currently not logged in";
    };







    $login = $_SESSION['user_ID'];
    print_r($_SESSION);

    $query = "SELECT * FROM jobs WHERE user_ID = :user_ID"; 
$term = $conn->prepare($query);
$term->bindValue(':user_ID', $login);
$term->execute();

$login = $term->fetch(PDO::FETCH_OBJ);

    ?>
    <div class="row">
            <div class="col-xs-12">
    <br>
        <nav class="navbar navbar-inverse">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>                        
      </button>
      <a class="navbar-brand" href="main.php">Tyre Hire</a>
    </div>
    <div class="collapse navbar-collapse" id="myNavbar">
      <ul class="nav navbar-nav">
             <li><a href="main.php"> Home <span class="glyphicon glyphicon-print"></span></a></li>
               <li><a href="search.php"> Search <span class="glyphicon glyphicon-print"></span></a></li>
               <li><a href="all-jobs.php"> Current Jobs <span class="glyphicon glyphicon-print"></span></a></li>
               <li><a href="interest.php"> Register Interest <span class="glyphicon glyphicon-print"></span></a></li>
               <li><a href="logout.php"> Logout <span class="glyphicon glyphicon-print"></span></a></li>
      </ul>
      <ul class="nav navbar-nav navbar-right">
        <li><a href="account.php"><span class="glyphicon glyphicon-user"></span> Sign Up</a></li>
        <li><a href="add.php"><span class="glyphicon glyphicon-log-in"></span> Login</a></li>
      </ul>
    </div>
  </div>
</nav>
    </div>
    </div>
        <div class="row">
    <div class="col-xs-12">
        <div class="right">
            <h2>Current Jobs</h2>
            <p>One of the best sites to find the best qualified and skilled drivers in the UK.</p>







                        <form class="form-horizontal"  action="" method="POST">
        <h3><u>Job Details </u></h3>


    <p>  Select a job below to view its details     </p>    
    <div class="form-group">
        <div class="scroll">
    <?php
foreach($workers as $worker)
{
    echo "<ul>";
    /*echo "<input class = buttonA type=submit name=Apply value=Apply>"; */

    echo "<li class=joblist><a href='job-list.php?job_id=".$worker->job_id."'></a>";
    echo "<a href='job-list.php?job_id=".$worker->job_id."' class=buttonA>View Details</a>";
    echo "<b> Job Role: </b>" .$worker->jobTitle;
    echo "<br>";
    echo "<b> Expiry Date: </b>" .$worker->expiry;
    echo "</li>";
    echo "</ul>";

}
    echo "<br>";
?>  

    </div>

    </body>
</html> 

主要PHP编码

function getJobs($conn)
{

    $query = "SELECT * FROM jobs";
    //$query = "SELECT * FROM jobs WHERE user_ID = :user_ID"; 
    $stmt = $conn->prepare($query);
    //$stmt->bindValue(':user_ID', $login);
    $stmt->execute();

    $workers=array();
    while($worker=$stmt->fetch(PDO::FETCH_OBJ))
    {
        $workers[]=$worker;
    }
    return $workers;
}

(该函数在另一个文件中调用,所以没关系)

所以此刻它会向登录的用户显示所有作业,但我只想显示与登录用户的用户ID相匹配的作业。

我已经尝试通过编辑sql语句注释掉但没有运气。我还尝试显示作业时创建了一个表来处理外键(driver_jobs) 表:

driver_job表:https://snag.gy/Mm5cU7.jpg

工作表:https://snag.gy/T9yXqL.jpg

任何想法?

1 个答案:

答案 0 :(得分:0)

成功登录后,您可以在会话中保存已登录用户的ID。

$_SESSION["user_id"] = $user_id

然后,您可以使用where子句获取与该用户相关的所有作业。

$query = "SELECT * FROM jobs WHERE user_ID = :user_ID"; 
$stmt = $conn->prepare($query);
$stmt->bindValue(':user_ID', $_SESSION["user_id"]);