Guest User

Untitled

a guest
Oct 5th, 2016
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.26 KB | None | 0 0
  1. class DB
  2. {
  3.     private $dbh;
  4.    
  5.     function __construct($host='localhost', $user='root', $password='', $dbname='ems')
  6.     {
  7.         $this->dbh = new mysqli( $host, $user, $password, $dbname);
  8.     }
  9.    
  10.    
  11.     function registerEmployee($name, $surname, $login, $password1, $password2, $email)
  12.     {
  13.         $name=htmlentities($name, ENT_QUOTES);
  14.         $surname=htmlentities($surname, ENT_QUOTES);
  15.         $login=htmlentities($login, ENT_QUOTES);
  16.         $password1=htmlentities($password1, ENT_QUOTES);
  17.         $password2=htmlentities($password2, ENT_QUOTES);
  18.         $email=htmlentities($email, ENT_QUOTES);
  19.        
  20.         $stmt=$this->dbh->prepare('SELECT id FROM employee WHERE login=? OR email=?');
  21.         $stmt->bind_param('ss', $login, $email);
  22.         $stmt->execute();
  23.         $stmt->bind_result($result);
  24.         $stmt->fetch();
  25.        
  26.         $_SESSION['formerror']=0;
  27.         $_SESSION['conflict']=0;
  28.         $_SESSION['loginerror']=0;
  29.         $_SESSION['passerror']=0;
  30.        
  31.         if(!$name || !$surname || !$login || !$password1 || !$password2 || !$email)  $_SESSION['formerror']=1;
  32.         if($result)  $_SESSION['conflict']=1;
  33.  
  34.         if(strlen($login)<7)  $_SESSION['loginerror']=1;
  35.         if((strlen($password1)>7||strlen($password2)>7)||($password1!=$password2))  $_SESSION['passerror']=1;
  36.  
  37.         if($_SESSION['formerror'] || $_SESSION['conflict'] || $_SESSION['loginerror'] || $_SESSION['passerror'])
  38.         {
  39.             return 0;
  40.         }
  41.         else
  42.         {
  43.             $stmt=0;
  44.             $password=password_hash($password1, PASSWORD_DEFAULT);
  45.            
  46.             $stmt=$this->dbh->prepare("INSERT INTO employee VALUES (NULL, ?, ?, ?, ?, ?, NULL)");
  47.             $stmt->bind_param('sssss', $name, $surname, $login, $password, $email);
  48.             $stmt->execute();
  49.        
  50.             return 1;
  51.         }
  52.     }
  53.        
  54.        
  55.     function addTask($from_place, $to_place, $from_time, $to_time, $km, $payment)
  56.     {
  57.         $stmt=$this->dbh->prepare('SELECT id FROM task WHERE from_place=? AND to_place=? AND from_time=? AND to_time=? AND km=? AND payment=?');
  58.         $stmt->bind_param('ssssdd', $from_place, $to_place, $from_time, $to_time, $km, $payment);
  59.         $stmt->execute();
  60.         $stmt->bind_result($result);
  61.         $stmt->fetch();
  62.         if($result)
  63.         {
  64.             return 0;
  65.         }
  66.        
  67.         $zero=0;
  68.         $stmt=$this->dbh->prepare('INSERT INTO task VALUES(null, null, ?, ?, ?, ?, ?, ?, ?)');
  69.         $stmt->bind_param('ssssddd', $from_place, $to_place, $from_time, $to_time, $km, $payment, $zero);
  70.         $stmt->execute();
  71.            
  72.         if($stmt)
  73.         {
  74.             return 1;
  75.         }
  76.         else
  77.         {
  78.             return 0;
  79.         }
  80.     }
  81.    
  82.    
  83.     function setTaskPerformer($employee_id, $task_id)
  84.     {
  85.         $stmt=$this->dbh->prepare('UPDATE task SET performer=? WHERE id=?');
  86.         $stmt->bind_param('ss', $employee_id, $task_id);
  87.         $stmt->execute();
  88.         $result=$stmt->affected_rows;
  89.         if($result)
  90.         {
  91.             return 1;
  92.         }
  93.         else
  94.         {
  95.             return 0;
  96.         }
  97.     }
  98.    
  99.    
  100.     function getTaskByID($task_id)
  101.     {
  102.         $stmt=$this->dbh->prepare('SELECT * FROM task WHERE id=?');
  103.         $stmt->bind_param('s', $task_id);
  104.         $stmt->execute();
  105.         $result=$stmt->fetch_assoc();
  106.        
  107.         return $result;
  108.     }
  109.    
  110.    
  111.     function getTaskByPerformer($employee_id)
  112.     {
  113.         $stmt=$this->dbh->prepare('SELECT * FROM task WHERE performer=?');
  114.         $stmt->bind_param('s', $employee_id);
  115.         $stmt->execute();
  116.         $result=$stmt->fetch_assoc();
  117.        
  118.         return $result;
  119.     }
  120.    
  121.    
  122.     function getEmployeeByID($employee_id)
  123.     {
  124.         $stmt=$this->dbh->prepare('SELECT id, name, surname, login, email, salary FROM task WHERE id=?');
  125.         $stmt->bind_param('s', $employee_id);
  126.         $stmt->execute();
  127.         $result=$stmt->fetch_assoc();
  128.        
  129.         return $result;
  130.     }
  131.    
  132.    
  133.     function getTasks($count, $from=0)
  134.     {
  135.         $stmt=$this->dbh->prepare('SELECT id FROM task LIMIT ?, ?');
  136.         $stmt->bind_param('ss', $count);
  137.         $stmt->execute();
  138.         $result=$stmt->get_result();
  139.         $rows=$result->fetch_all(MYSQLI_ASSOC);
  140.        
  141.         return $rows;
  142.     }
  143.    
  144.    
  145.     function getOrderedTasks($count, $from=0)
  146.     {
  147.         $stmt=$this->dbh->prepare('SELECT id FROM task WHERE performer > 0  ORDER BY id ASC LIMIT ?, ?');
  148.         $stmt->bind_param('ss', $from, $count);
  149.         $stmt->execute();
  150.         $result=$stmt->get_result();
  151.         $rows=$result->fetch_all(MYSQLI_ASSOC);
  152.        
  153.         return $rows;
  154.     }
  155.    
  156.    
  157.     function getUnorderedTasks($count, $from=0)
  158.     {
  159.         $stmt=$this->dbh->prepare('SELECT id FROM task WHERE performer IS NULL ORDER BY id ASC LIMIT ?, ?');
  160.         $stmt->bind_param('ss', $from, $count);
  161.         $stmt->execute();
  162.         $result=$stmt->get_result();
  163.         $rows=$result->fetch_all(MYSQLI_ASSOC);
  164.        
  165.         return $rows;
  166.     }
  167.    
  168.    
  169.     function getCompletedTasks($count, $from=0)
  170.     {
  171.         $stmt=$this->dbh->prepare('SELECT id FROM task WHERE  completed = 1 ORDER BY id ASC LIMIT ?, ?');
  172.         $stmt->bind_param('ss', $from, $count);
  173.         $stmt->execute();
  174.         $result=$stmt->get_result();
  175.         $row=$result->fetch_all(MYSQLI_ASSOC);
  176.        
  177.         return $rows;
  178.     }
  179.    
  180.    
  181.     function getUncompletedTasks($count, $from=0)
  182.     {
  183.         $stmt=$this->dbh->prepare('SELECT id FROM task WHERE completed = 0  ORDER BY id ASC LIMIT ?, ?');
  184.         $stmt->bind_param('ss', $from, $count);
  185.         $stmt->execute();
  186.         $result=$stmt->get_result();
  187.         $rows=$result->fetch_all(MYSQLI_ASSOC);
  188.        
  189.         return $rows;
  190.     }
  191.    
  192.    
  193.     function getFreeEmployee($count, $from=0)
  194.     {
  195.         $stmt=$this->dbh->prepare('SELECT id FROM employee WHERE id NOT IN (SELECT performer FROM task WHERE performer IS NOT NULL AND completed = 0 ) ORDER BY id ASC LIMIT ?, ?');
  196.         $stmt->bind_param('ss', $from, $count);
  197.         $stmt->execute();
  198.         $result=$stmt->get_result();
  199.         $rows=$result->fetch_all(MYSQLI_ASSOC);
  200.        
  201.         return $rows;
  202.     }
  203. }
Add Comment
Please, Sign In to add comment