Проблема: у меня проблема при вводе значений dept_no в таблицу emp. Значения не могут быть вставлены, в то время как в таблице dept_no успешно вставлена
Используя вышеприведенную базу данных, пишите PHP-скрипты, которые будут:
Мой код..
<?php
if(isset($_POST['submit'])){
//first name of employee
if($_SERVER['REQUEST_METHOD'] == 'POST'){
//to collect errors in an array
$errors = array();
//employee 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 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);
?>
зачем использовать инструкцию select здесь?
'SELECT dept_no FROM dept where dept_no = $dep_no'
Разве вы не просто выбираете то же самое значение, которое только что вставили в таблицу отдела? Почему не просто
VALUES ($emp_no,$dep_no,'$first_name'...
Я новичок в php, поэтому я легко ошибаюсь здесь...
Попробуй это...
$q2 = "INSERT INTO dept (dept_no,dept_name,location)
VALUES ('$dep_no','$dep_name','$dep_location')";
$q= "INSERT INTO emp SET emp_no='$emp_no',dept_no='$dep_no',first_name='$first_name',last_name='$last_name',address='$address',phone='$phone',salary='$salary'"