исправить мелкие ошибки в моем PHP и MySQL код

0

Проблема: у меня проблема при вводе значений dept_no в таблицу emp. Значения не могут быть вставлены, в то время как в таблице dept_no успешно вставлена

  • Emp (emp_no, emp_name, адрес, телефон, зарплата, dept_no)
  • Dept (dept_no, dept_name, location)
  • Dept-Emp связаны с отношениями один-много. Создайте реляционную базу данных для вышеуказанного и выполните следующие действия:

Используя вышеприведенную базу данных, пишите PHP-скрипты, которые будут:

  1. Вставьте записи сотрудников и записи отдела в соответствующие таблицы.
  2. Распечатайте выражение о зарплате в формате, указанном ниже, для данного отдела. (Примите название отдела от пользователя).

Мой код..

<?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); 
?>
  • 0
    Пожалуйста, помогите мне с этим занятием, мне трудно изолировать проблемы, спасибо
  • 0
    Ваши условные заявления отсутствуют {}
Показать ещё 1 комментарий
Теги:
database

2 ответа

0

зачем использовать инструкцию select здесь?

'SELECT dept_no FROM dept where dept_no = $dep_no'

Разве вы не просто выбираете то же самое значение, которое только что вставили в таблицу отдела? Почему не просто

VALUES ($emp_no,$dep_no,'$first_name'...

Я новичок в php, поэтому я легко ошибаюсь здесь...

0

Попробуй это...

$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'"
  • 0
    да, это работает сейчас, но когда я введу тот же dep_no, на выходе будет системная ошибка! Данные не были вставлены! Так как это отношение один ко многим, я хочу использовать одно и то же dep_no.Как я могу избавиться от этого сообщения ... спасибо
  • 0
    тот же отдел не значит, я не могу понять
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню