Поле 'time_out' 'num_hr' не имеет значения по умолчанию? - PullRequest
0 голосов
/ 19 сентября 2019

я настраиваю сайт посещаемости, но когда я пытаюсь войти в систему, он говорит: Поле 'time_out' 'num_hr' не имеет значения по умолчанию?

Не могу установитьMysql в глобальном режиме, потому что я использую сервер хостинга, поэтому у меня нет привилегии на изменение Mysql со STRICT_MODE на GLOBAL_MODE.Пожалуйста, помогите мне решить эту проблему

Вот ссылка на этой странице, вы можете попробовать войти с именем Rohit Ссылка на этой странице Но она покажет ошибку Вот мои php коды этогоСтраница!

<?php
    if(isset($_POST['employee'])){
        $output = array('error'=>false);

        include 'conn.php';
        include 'timezone.php';

        $employee = $_POST['employee'];
        $status = $_POST['status'];

        $sql = "SELECT * FROM employees WHERE employee_id = '$employee'";
        $query = $conn->query($sql);

        if($query->num_rows > 0){
            $row = $query->fetch_assoc();
            $id = $row['id'];

            $date_now = date('Y-m-d');

            if($status == 'in'){
                $sql = "SELECT * FROM attendance WHERE employee_id = '$id' AND date = '$date_now' AND time_in IS NOT NULL";
                $query = $conn->query($sql);
                if($query->num_rows > 0){
                    $output['error'] = true;
                    $output['message'] = 'You have timed in for today';
                }
                else{
                    //updates
                    $sched = $row['schedule_id'];
                    $lognow = date('H:i:s');
                    $sql = "SELECT * FROM schedules WHERE id = '$sched'";
                    $squery = $conn->query($sql);
                    $srow = $squery->fetch_assoc();
                    $logstatus = ($lognow > $srow['time_in']) ? 0 : 1;
                    //
                    $sql = "INSERT INTO attendance (employee_id, date, time_in, status) VALUES ('$id', '$date_now', NOW(), '$logstatus')";
                    if($conn->query($sql)){
                        $output['message'] = 'Time in: '.$row['firstname'].' '.$row['lastname'];
                    }
                    else{
                        $output['error'] = true;
                        $output['message'] = $conn->error;
                    }
                }
            }
            else{
                $sql = "SELECT *, attendance.id AS uid FROM attendance LEFT JOIN employees ON employees.id=attendance.employee_id WHERE attendance.employee_id = '$id' AND date = '$date_now'";
                $query = $conn->query($sql);
                if($query->num_rows < 1){
                    $output['error'] = true;
                    $output['message'] = 'Cannot Timeout. No time in.';
                }
                else{
                    $row = $query->fetch_assoc();
                    if($row['time_out'] != '00:00:00'){
                        $output['error'] = true;
                        $output['message'] = 'You have timed out for today';
                    }
                    else{

                        $sql = "UPDATE attendance SET time_out = NOW() WHERE id = '".$row['uid']."'";
                        if($conn->query($sql)){
                            $output['message'] = 'Time out: '.$row['firstname'].' '.$row['lastname'];

                            $sql = "SELECT * FROM attendance WHERE id = '".$row['uid']."'";
                            $query = $conn->query($sql);
                            $urow = $query->fetch_assoc();

                            $time_in = $urow['time_in'];
                            $time_out = $urow['time_out'];

                            $sql = "SELECT * FROM employees LEFT JOIN schedules ON schedules.id=employees.schedule_id WHERE employees.id = '$id'";
                            $query = $conn->query($sql);
                            $srow = $query->fetch_assoc();

                            if($srow['time_in'] > $urow['time_in']){
                                $time_in = $srow['time_in'];
                            }

                            if($srow['time_out'] < $urow['time_in']){
                                $time_out = $srow['time_out'];
                            }

                            $time_in = new DateTime($time_in);
                            $time_out = new DateTime($time_out);
                            $interval = $time_in->diff($time_out);
                            $hrs = $interval->format('%h');
                            $mins = $interval->format('%i');
                            $mins = $mins/60;
                            $int = $hrs + $mins;
                            if($int > 4){
                                $int = $int - 1;
                            }

                            $sql = "UPDATE attendance SET num_hr = '$int' WHERE id = '".$row['uid']."'";
                            $conn->query($sql);
                        }
                        else{
                            $output['error'] = true;
                            $output['message'] = $conn->error;
                        }
                    }

                }
            }
        }
        else{
            $output['error'] = true;
            $output['message'] = 'Employee ID not found';
        }

    }

    echo json_encode($output);

?>

А вот и файл базы данных MySql!

-- phpMyAdmin SQL Dump
-- version 4.8.5
-- https://www.phpmyadmin.net/
--
-- Host: localhost:3306
-- Generation Time: Sep 19, 2019 at 09:25 AM
-- Server version: 10.3.16-MariaDB
-- PHP Version: 7.3.2

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `epiz_24502582_apsystem`
--

-- --------------------------------------------------------

--
-- Table structure for table `admin`
--

CREATE TABLE `admin` (
  `id` int(11) NOT NULL,
  `username` varchar(30) NOT NULL,
  `password` varchar(60) NOT NULL,
  `firstname` varchar(50) NOT NULL,
  `lastname` varchar(50) NOT NULL,
  `photo` varchar(200) NOT NULL,
  `created_on` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `admin`
--

INSERT INTO `admin` (`id`, `username`, `password`, `firstname`, `lastname`, `photo`, `created_on`) VALUES
(1, 'admin', '$2y$10$fCOiMky4n5hCJx3cpsG20Od4wHtlkCLKmO6VLobJNRIg9ooHTkgjK', 'Avishkar', 'Appliances', 'male6.jpg', '2018-04-30');

-- --------------------------------------------------------

--
-- Table structure for table `attendance`
--

CREATE TABLE `attendance` (
  `id` int(11) NOT NULL,
  `employee_id` int(11) NOT NULL,
  `date` date NOT NULL,
  `time_in` time NOT NULL,
  `status` int(1) NOT NULL,
  `time_out` time NOT NULL,
  `num_hr` double NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `attendance`
--

INSERT INTO `attendance` (`id`, `employee_id`, `date`, `time_in`, `status`, `time_out`, `num_hr`) VALUES
(119, 24, '2019-09-01', '09:00:00', 1, '17:30:00', 7.5),
(120, 24, '2019-09-02', '09:00:00', 1, '17:30:00', 7.5),
(121, 24, '2019-09-03', '09:00:00', 1, '17:30:00', 7.5),
(122, 24, '2019-09-04', '09:00:00', 1, '17:30:00', 7.5),
(123, 24, '2019-09-05', '09:00:00', 1, '17:30:00', 7.5),
(124, 24, '2019-09-06', '09:00:00', 1, '17:30:00', 7.5),
(125, 24, '2019-09-07', '09:00:00', 1, '17:30:00', 7.5),
(126, 24, '2019-09-08', '09:00:00', 1, '17:30:00', 7.5),
(127, 24, '2019-09-09', '09:00:00', 1, '17:30:00', 7.5),
(128, 24, '2019-09-10', '09:00:00', 1, '17:30:00', 7.5),
(129, 24, '2019-09-11', '09:00:00', 1, '17:30:00', 7.5),
(130, 24, '2019-09-12', '09:00:00', 1, '17:30:00', 7.5),
(131, 24, '2019-09-13', '09:00:00', 1, '17:30:00', 7.5),
(132, 24, '2019-09-14', '09:00:00', 1, '17:30:00', 7.5),
(133, 24, '2019-09-15', '09:00:00', 1, '17:30:00', 7.5),
(134, 24, '2019-09-16', '09:00:00', 1, '17:30:00', 7.5),
(135, 24, '2019-09-17', '09:00:00', 1, '17:30:00', 7.5),
(136, 24, '2019-09-18', '09:00:00', 1, '17:30:00', 7.5),
(137, 25, '2019-09-01', '09:00:00', 1, '17:30:00', 7.5),
(138, 25, '2019-09-02', '09:00:00', 1, '17:30:00', 7.5),
(139, 25, '2019-09-03', '09:00:00', 1, '17:30:00', 7.5),
(140, 25, '2019-09-04', '09:00:00', 1, '17:30:00', 7.5),
(141, 25, '2019-09-05', '09:00:00', 1, '17:30:00', 7.5),
(142, 25, '2019-09-06', '09:00:00', 1, '17:30:00', 7.5),
(143, 25, '2019-09-07', '09:00:00', 1, '17:30:00', 7.5),
(144, 25, '2019-09-08', '09:00:00', 1, '17:30:00', 7.5),
(145, 25, '2019-09-09', '09:00:00', 1, '17:30:00', 7.5),
(146, 25, '2019-09-10', '09:00:00', 1, '17:30:00', 7.5),
(147, 25, '2019-09-11', '09:00:00', 1, '17:30:00', 7.5),
(148, 25, '2019-09-13', '09:00:00', 1, '17:30:00', 7.5),
(149, 25, '2019-09-14', '09:00:00', 1, '17:30:00', 7.5),
(150, 25, '2019-09-15', '09:00:00', 1, '17:30:00', 7.5),
(151, 25, '2019-09-17', '09:00:00', 1, '17:30:00', 7.5),
(152, 25, '2019-09-18', '09:00:00', 1, '17:30:00', 7.5),
(153, 26, '2019-09-01', '09:00:00', 1, '17:30:00', 7.5),
(154, 26, '2019-09-02', '09:00:00', 1, '18:30:00', 7.5),
(155, 25, '2019-09-19', '07:46:17', 0, '00:00:00', 0);

-- --------------------------------------------------------

--
-- Table structure for table `cashadvance`
--

CREATE TABLE `cashadvance` (
  `id` int(11) NOT NULL,
  `date_advance` date NOT NULL,
  `employee_id` varchar(15) NOT NULL,
  `amount` double NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

--
-- Table structure for table `deductions`
--

CREATE TABLE `deductions` (
  `id` int(11) NOT NULL,
  `description` varchar(100) NOT NULL,
  `amount` double NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

--
-- Table structure for table `employees`
--

CREATE TABLE `employees` (
  `id` int(11) NOT NULL,
  `employee_id` varchar(15) NOT NULL,
  `firstname` varchar(50) NOT NULL,
  `lastname` varchar(50) NOT NULL,
  `address` text NOT NULL,
  `birthdate` date NOT NULL,
  `contact_info` varchar(100) NOT NULL,
  `gender` varchar(10) NOT NULL,
  `position_id` int(11) NOT NULL,
  `schedule_id` int(11) NOT NULL,
  `photo` varchar(200) NOT NULL,
  `created_on` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `employees`
--

INSERT INTO `employees` (`id`, `employee_id`, `firstname`, `lastname`, `address`, `birthdate`, `contact_info`, `gender`, `position_id`, `schedule_id`, `photo`, `created_on`) VALUES
(24, 'Vinod', 'Vinod Kumar', 'Dinkar', 'Parwanoo', '2019-08-31', '', 'Male', 5, 5, '', '2019-09-18'),
(25, 'Rohit', 'Rohit', 'Kumar', 'Parwanoo', '1998-06-13', '', 'Male', 6, 5, '', '2019-09-18'),
(26, 'Ram pal', 'Ram Shankar', 'Pal', 'Parwanoo', '2019-08-31', '', 'Male', 8, 5, '', '2019-09-18'),
(27, 'Ram', 'Ram ', 'Sahay', 'Parwanoo', '2019-08-31', '', 'Male', 8, 5, '', '2019-09-18'),
(28, 'Sunny', 'Sunny', 'Kumar', 'Parwanoo', '2019-08-31', '', 'Male', 7, 5, '', '2019-09-18'),
(29, 'Golu', 'Golu', '.', '\r\nParwanoo', '2019-08-31', '', 'Male', 7, 5, '', '2019-09-18'),
(30, 'Arjun', 'Arjun Kumar', 'Rajak', 'Parwanoo', '2019-08-31', '', 'Male', 7, 5, '', '2019-09-18'),
(31, 'Koushal', 'Koushal', 'Kumar', '', '2019-08-31', '', 'Male', 7, 5, '', '2019-09-18'),
(32, 'Vicky', 'Vicky', '.', 'parwanoo', '2019-08-31', '', 'Male', 7, 5, '', '2019-09-18'),
(33, 'Disha', 'Disha', '.', 'Parwanoo', '2019-08-31', '', 'Female', 7, 5, '', '2019-09-18'),
(34, 'Maya', 'Maya', 'Devi', 'parwanoo', '2019-08-31', '', 'Female', 7, 5, '', '2019-09-18'),
(35, 'Sangeeta', 'Sangeeta', 'Devi', 'parwanoo', '2019-08-31', '', 'Female', 7, 5, '', '2019-09-18'),
(36, 'Urmilla', 'Urmilla', 'Devi', 'parwanoo', '2019-08-31', '', 'Female', 7, 5, '', '2019-09-18'),
(37, 'Saima', 'Saima', 'Bano', 'parwanoo', '2019-08-31', '', 'Female', 7, 5, '', '2019-09-18');

-- --------------------------------------------------------

--
-- Table structure for table `overtime`
--

CREATE TABLE `overtime` (
  `id` int(11) NOT NULL,
  `employee_id` varchar(15) NOT NULL,
  `hours` double NOT NULL,
  `rate` double NOT NULL,
  `date_overtime` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

--
-- Table structure for table `position`
--

CREATE TABLE `position` (
  `id` int(11) NOT NULL,
  `description` varchar(150) NOT NULL,
  `rate` double NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `position`
--

INSERT INTO `position` (`id`, `description`, `rate`) VALUES
(5, 'Manager', 137.5),
(6, 'Accountant', 43.75),
(7, 'Salary Slab  - 7500', 31.25),
(8, 'Salary Slab - 8000', 33.333);

-- --------------------------------------------------------

--
-- Table structure for table `schedules`
--

CREATE TABLE `schedules` (
  `id` int(11) NOT NULL,
  `time_in` time NOT NULL,
  `time_out` time NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `schedules`
--

INSERT INTO `schedules` (`id`, `time_in`, `time_out`) VALUES
(5, '09:00:00', '17:30:00');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `admin`
--
ALTER TABLE `admin`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `attendance`
--
ALTER TABLE `attendance`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `cashadvance`
--
ALTER TABLE `cashadvance`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `deductions`
--
ALTER TABLE `deductions`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `employees`
--
ALTER TABLE `employees`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `overtime`
--
ALTER TABLE `overtime`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `position`
--
ALTER TABLE `position`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `schedules`
--
ALTER TABLE `schedules`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `admin`
--
ALTER TABLE `admin`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT for table `attendance`
--
ALTER TABLE `attendance`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=156;

--
-- AUTO_INCREMENT for table `cashadvance`
--
ALTER TABLE `cashadvance`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;

--
-- AUTO_INCREMENT for table `deductions`
--
ALTER TABLE `deductions`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;

--
-- AUTO_INCREMENT for table `employees`
--
ALTER TABLE `employees`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=38;

--
-- AUTO_INCREMENT for table `overtime`
--
ALTER TABLE `overtime`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;

--
-- AUTO_INCREMENT for table `position`
--
ALTER TABLE `position`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;

--
-- AUTO_INCREMENT for table `schedules`
--
ALTER TABLE `schedules`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...