75 lines
No EOL
2 KiB
PHP
75 lines
No EOL
2 KiB
PHP
<?php
|
|
require_once('../config/database.php');
|
|
|
|
/**
|
|
* Traitement des requêtes pour les projets
|
|
* @author : Laura
|
|
*/
|
|
|
|
class ProjectModel extends Connect{
|
|
|
|
public function findAll(int $intLimit=0, string $strKeywords='', int $intAuthor=0,
|
|
int $intPeriod=0, string $strDate='', string $strStartDate='',
|
|
string $strEndDate='', int $intCategory=0):array{
|
|
|
|
// Ecrire la requête
|
|
$strRq = "SELECT project.*,
|
|
CONCAT(user_firstname, ' ', user_name) AS 'project_creatorname',
|
|
user_image
|
|
FROM project
|
|
INNER JOIN users ON user_id = project_user";
|
|
|
|
$strWhere = " WHERE ";
|
|
// Recherche par mot clé
|
|
if ($strKeywords != '') {
|
|
$strRq .= " WHERE (project_title LIKE '%".$strKeywords."%'
|
|
OR project_content LIKE '%".$strKeywords."%') ";
|
|
|
|
//$boolWhere = true;
|
|
$strWhere = " AND ";
|
|
}
|
|
|
|
// Recherche par auteur
|
|
if ($intAuthor > 0){
|
|
$strRq .= $strWhere." user_id = ".$intAuthor;
|
|
$strWhere = " AND ";
|
|
}
|
|
|
|
// Recherche par catégorie
|
|
if ($intAuthor > 0){
|
|
$strRq .= $strWhere." project_category = ".$intCategory;
|
|
$strWhere = " AND ";
|
|
}
|
|
|
|
// Recherche par dates
|
|
if ($intPeriod == 0){
|
|
// Par date exacte
|
|
if ($strDate != ''){
|
|
$strRq .= $strWhere." project_creation_date = '".$strDate."'";
|
|
}
|
|
}else{
|
|
// Par période de dates
|
|
if ($strStartDate != '' && $strEndDate != ''){
|
|
$strRq .= $strWhere." project_creation_date BETWEEN '".$strStartDate."' AND '".$strEndDate."'";
|
|
}else{
|
|
if ($strStartDate != ''){
|
|
// A partir de
|
|
$strRq .= $strWhere." project_creation_date >= '".$strStartDate."'";
|
|
}else if ($strEndDate != ''){
|
|
// Avant le
|
|
$strRq .= $strWhere." project_creation_date <= '".$strEndDate."'";
|
|
}
|
|
}
|
|
}
|
|
|
|
$strRq .= " ORDER BY project_creation_date DESC";
|
|
|
|
|
|
if ($intLimit > 0){
|
|
$strRq .= " LIMIT ".$intLimit;
|
|
}
|
|
|
|
// Lancer la requête et récupérer les résultats
|
|
return $this->_db->query($strRq)->fetchAll();
|
|
}
|
|
} |