我有三张桌子(休假,员工,部门)
这是我的数据库
员工表: {Emp_ID(PK),Emp_Fname,Emp_Lname,ContactNo_HP,ContactNo_Home,Emp_Email,Dept_ID(FK)}
离开表格: {Leave_ID(PK),Date_Apple,Leave_Type,Leave_Start,Leave_End,Status,Emp_ID(FK)}
部门表: {Dept_ID(PK),Dept_Name,Dept_Desp}
当我点击“详细信息”时,它将出现一个新页面。只有具体的
<tr>
<td><?php echo $row["Leave_ID"];?></td>
<td><?php echo $row["Emp_ID"];?></td>
<td><?php echo $row["Date_Apply"];?></td>
<td><?php echo $row["Leave_Type"];?></td>
<td><?php echo $row["Leave_Start"];?></td>
<td><?php echo $row["Leave_End"];?></td>
<td><?php echo $row["Status"];?></td>
<td><a href="app_status.php?id=<?php echo $row[Leave_ID];?>"
target="_blank">Detail</a></td>
</tr>
在新页面中我有问题要显示(Emp_Name,Dept_Name,ContactNo_HP,ContactNo_Home),因为Emp_ID是离开表中的外键,而Dept_Name是在department表中,它将Dept_ID链接为employee表中的外键。
我在新页面中使用以下语句来显示数据
<?php
$result = mysql_query("select * from `leave`");
$row = mysql_fetch_assoc($result);
?>
答案 0 :(得分:0)
首先,您必须在详细信息页面中检索Leave_ID:
$leaveID = $_GET['Leave_ID'];
然后你必须编写一个从三个表中选择的SQL代码并将其分配给一个变量(如$ sql):
select t1.Emp_Name, t2.Dept_Name, t1.ContactNo_HP, t1.ContactNo_Home
from employee as t1 inner join department as t2
on t1.Dept_ID = t2.Dept_ID inner join `leave` as t3
on t3.Emp_ID = t1.Emp_ID
where t3.Leave_ID = ?
此时我建议您使用带有预准备语句的MySQLi对象:
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("i", $leaveID);
$stmt->execute();
$stmt->bind_result($empName, $deptName, $contactNoHP, $contactNoHome);
while ($stmt->fetch()) {
\\your code to display details here
}
$stmt->close();
$mysqli->close();
请注意: