Advertisement
Guest User

Untitled

a guest
Jan 16th, 2016
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.28 KB | None | 0 0
  1. <?php
  2. /**
  3.  * Created by PhpStorm.
  4.  * User: Spencer
  5.  * Date: 04/12/2015
  6.  * Time: 10:00
  7.  */
  8.  
  9. namespace respprog\Model;
  10. use Zend\Db\TableGateway\TableGateway;
  11. use Zend\Db\TableGateway\AbstractTableGateway;
  12.  
  13. use Zend\Db\Sql\Select;
  14. use Zend\Paginator\Adapter\DbSelect;
  15. use Zend\Db\ResultSet\ResultSet;
  16. use Zend\Db\Sql\Sql;
  17.  
  18.  
  19. class FilmTable extends AbstractTableGateway
  20. {
  21.     protected $tableGateway;
  22.  
  23.     public function __construct(TableGateway $tableGateway)
  24.     {
  25.         $this->tableGateway = $tableGateway;
  26.     }
  27.  
  28.     public function fetchAll()
  29.     {
  30.         $resultSet = $this->tableGateway->select();
  31.         return $resultSet;
  32.     }
  33.  
  34.     public function getFilmById($id)
  35.     {
  36.         $resultSet = $this->tableGateway->select(array('idFilm' => $id));
  37.         return $resultSet;
  38.     }
  39.  
  40.     public function getFilmNotInWeek($mercredi)
  41.     {
  42.         $dateProg = date('Y-m-d', $mercredi);
  43.  
  44.         //la sous requette de la premiere requete
  45.         $sql = new Sql($this->tableGateway->adapter);
  46.         $subquery = $sql->select()->columns(array('p2.film'));
  47.         $subquery->from(array('p'=> 'programmation'));
  48.         $subquery->where(array('p2.date_debut_sem' => $dateProg));
  49.  
  50.  
  51.         //La premiere requete
  52.         $sql1 = new Sql($this->tableGateway->adapter);
  53.         $query = $sql1->select()->columns(array('f.idFilm'));
  54.         $query->from(array(
  55.             'f' => $this->tableGateway->getTable()))
  56.             ->join(array('p' => 'programmation'),'f.idFilm = p.film')
  57.             ->where->notIn('p.film',$subquery);
  58.  
  59.         //la sous requete de la 2e requete
  60.         $sql2 = new Sql($this->tableGateway->adapter);
  61.         $subquery2 = $sql2->select()->columns(array('f2.idFilm'));
  62.         $subquery2->from(array('f2' => $this->tableGateway->adapter))
  63.             ->join(array('p' => 'programmation', 'p.film = f2.idFilm'));
  64.  
  65.  
  66.         //La 2e requete
  67.         $sql3 = new Sql($this->tableGateway->adapter);
  68.         $query1 = $sql3->select()->columns(array('f.idFilm'));
  69.         $query1->from(array('f'=>$this->tableGateway->adapter))
  70.             ->where->notIn('f.idFilm',$subquery2);
  71.  
  72.         //L'union
  73.         $query->combine($query1);
  74.  
  75.         $resultSet = $this->tableGateway->selectWith($query);
  76.  
  77.         return $resultSet;
  78.     }
  79.    
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement