【发布时间】:2015-03-07 03:58:20
【问题描述】:
问题: 将 dept_no 的值插入 emp 表时出现问题。在 dept 表中无法插入值 dept_no 已成功插入
- Emp (emp_no,emp_name,address,phone,salary,dept_no)
- 部门(部门编号、部门名称、位置)
- Dept-Emp 与一对多关系相关。为上述创建一个关系数据库并执行以下操作:
使用上面的数据库编写 PHP 脚本:
- 将员工记录和部门记录插入到相应的表中。
- 以下面给出的格式打印给定部门的工资报表。 (接受用户的部门名称)。
我的代码..
<?php
if(isset($_POST['submit'])){
//first name of employee
if($_SERVER['REQUEST_METHOD'] == 'POST'){
//to collect errors in an array
$errors = array();
//employee's id
if(empty($_POST['emp_no'])){
$errors[] = "Please enter employee number!";
}else{
$emp_no = trim($_POST['emp_no']);
}
//department number
if(empty($_POST['dep_no'])){
$errors[] = "Please enter employee number!";
}else{
$dep_no = trim($_POST['dep_no']);
}
//department name
if(empty($_POST['dep_name'])){
$errors[] = "Please enter department name!";
}else{
$dep_name = trim($_POST['dep_name']);
}
//department location
if(empty($_POST['dep_location'])){
$errors[] = "Please enter department location!";
}else{
$dep_location = trim($_POST['dep_location']);
}
//employee's first name
if(empty($_POST['first_name'])){
$errors[] = "Please enter first name!";
}else{
$first_name = trim($_POST['first_name']);
}
//employees last name
if(empty($_POST['last_name'])){
$errors[] = "Please enter last name!";
}else{
$last_name = trim($_POST['last_name']);
}
//employees address
if(empty($_POST['address'])){
$errors[] = "Please enter address!";
}else{
$address = trim($_POST['address']);
}
//employees phone
if(empty($_POST['phone'])){
$errors[] = "Please enter phone number!";
}else{
$phone = trim($_POST['phone']);
}
//employees salary
if(empty($_POST['salary'])){
$errors[] = "Please enter phone number!";
}else{
$salary = trim($_POST['salary']);
}
//check if no errors
if(empty($errors)){
require('dep_emp.php');
}
}
?>
<form action="emp_print.php" method="POST">
<p>Employee Form</p>
<p>Employee Number <input type="number" name="emp_no" value="<?php if(isset($_POST['submit']))echo $_POST['emp_no']; ?>"/></p>
<p>Department Number <input type="number" name="dep_no" value="<?php if(isset($_POST['submit']))echo $_POST['dep_no']; ?>"/></p>
<p>Department Name <input type="text" name="dep_name" value="<?php if(isset($_POST['submit']))echo $_POST['dep_name']; ?>"/></p>
<p>Department Location <input type="text" name="dep_location" value="<?php if(isset($_POST['submit']))echo $_POST['dep_location']; ?>"/></p>
<p>First Name <input type="text" name="first_name" value="<?php if(isset($_POST['submit']))echo $_POST['first_name']; ?>"/></p>
<p>Last Name <input type="text" name="last_name" value="<?php if(isset($_POST['submit']))echo $_POST['last_name']; ?>"/></p>
<p>Address <input type="text" name="address" value="<?php if(isset($_POST['submit']))echo $_POST['address']; ?>"/></p>
<p>Phone Number <input type="text" name="phone" value="<?php if(isset($_POST['submit']))echo $_POST['phone']; ?>"/></p>
<p>Salary <input type="number" name="salary" value="<?php if(isset($_POST['submit']))echo $_POST['salary']; ?>"/></p>
<p><input type="submit" name="submit" value="Insert"/></p>
</form>
dep_emp.php
<?php
//connect to the database
$dbc = @mysqli_connect('localhost','root','black98765','activity_7a')
OR die("Could not connect to MySQL: ".mysqli_connect_error());
//insert values into department table
$q2 = "INSERT INTO dept (dept_no,dept_name,location)
VALUES ($dep_no,'$dep_name','$dep_location')";
//insert values to employee table
$q = "INSERT INTO emp (emp_no,dept_no,first_name,last_name,address,phone,salary)
VALUES ($emp_no,$dep_no,
'$first_name','$last_name','$address','$phone',$salary)";
$r = mysqli_query($dbc,$q);
$r2 = mysqli_query($dbc,$q2);
if($r && $r2){
echo "<p>Successfully Inserted!</p>";
}else{
echo "<p>System Error!</p>
<p>Data are not been inserted!</p>";
echo "<p>".mysqli_error($dbc)."</p>";
}
mysqli_close($dbc);
?>
【问题讨论】:
-
请帮我完成这项活动,因为我很难隔离问题,谢谢
-
您的条件语句丢失{}
-
感谢回复我收到此错误。系统错误!数据未插入!无法添加或更新子行:外键约束失败 (
activity_7a.emp, CONSTRAINTemp_ibfk_1FOREIGN KEY (dept_no) REFERENCESdept(dept_no))