目前,我的网站能够显示管理员发布给所有登录用户的所有作业。但是我试图编辑我的代码,以便它只显示根据用户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
任何想法?
答案 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"]);