Subversion Repositories eFlore/Applications.cel

Rev

Rev 862 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 862 Rev 906
Line 1... Line 1...
1
<?php
1
<?php
2
/*
2
/**
3
 * Created on 24 août 2011
3
* PHP Version 5
4
 *
4
*
-
 
5
* @category  PHP
-
 
6
* @package   jrest
5
 * To change the template for this generated file go to
7
* @author    Aurélien Peronnet <aurelien@tela-botania.org>
-
 
8
* @copyright 2010 Tela-Botanica
6
 * Window - Preferences - PHPeclipse - PHP - Code Templates
9
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
-
 
10
* @version   SVN: <svn_id>
-
 
11
* @link      /doc/jrest/
7
*/
12
*/
Line 8... Line 13...
8
 
13
 
9
/**
-
 
10
 * librairie recherche d'observations a partir de divers critères
14
/**
11
 * Encodage en entrée : utf8
15
* in : utf8
12
 * Encodage en sortie : utf8
16
* out : utf8
13
 *
-
 
14
 * @author Aurélien PERONNET <aurelien@tela-botanica.org>
17
* 
15
 * @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
-
 
16
 * @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
18
* Librairie recherche d'observations a partir de divers critères
17
 * @version $Id$
19
*
18
*/
20
*/
Line 19... Line 21...
19
class RechercheObservation extends Cel {
21
class RechercheObservation extends Cel {
Line -... Line 22...
-
 
22
	
-
 
23
	public function rechercherObservations($id_utilisateur = null, $criteres = array(), $numero_page = 0, $taille_page = 50) {
-
 
24
		
20
	
25
 		$requete_selection_observations = 'SELECT * FROM cel_obs ';
-
 
26
 		
-
 
27
 		if($id_utilisateur != null) {
-
 
28
 			$requete_selection_observations .= 'WHERE ce_utilisateur = '.$this->proteger($id_utilisateur).' AND ';
Line 21... Line 29...
21
	public function rechercherObservations($id_utilisateur, $criteres, $numero_page = 0, $taille_page = 50) {
29
 		} else if(count($criteres) > 0) {
Line 22... Line 30...
22
		
30
 			$requete_selection_observations .= 'WHERE ';
Line 33... Line 41...
33
		$resultats_observations = $this->requeter($requete_selection_observations);
41
		$resultats_observations = $this->requeter($requete_selection_observations);
Line 34... Line 42...
34
		
42
		
35
		return $resultats_observations;
43
		return $resultats_observations;
Line 36... Line 44...
36
	}
44
	}
Line 37... Line 45...
37
	
45
	
-
 
46
	public function compterObservations($id_utilisateur = null, $criteres = array()) {
-
 
47
		
-
 
48
 		$requete_selection_observations = 'SELECT COUNT(*) as nb_obs FROM cel_obs ';
-
 
49
 		
-
 
50
 		if($id_utilisateur != null) {
-
 
51
 			$requete_selection_observations .= 'WHERE ce_utilisateur = '.$this->proteger($id_utilisateur).' AND ';
Line 38... Line 52...
38
	public function compterObservations($id_utilisateur, $criteres) {
52
 		} else if(count($criteres) > 0) {
Line 39... Line 53...
39
		
53
 			$requete_selection_observations .= 'WHERE ';
Line 65... Line 79...
65
		return $criteres_parses;
79
		return $criteres_parses;
66
	}
80
	}
Line 67... Line 81...
67
	
81
	
Line 68... Line -...
68
	private function fabriquerSousRequeteRecherche($id_utilisateur, $criteres) {
-
 
69
		
-
 
70
		$sous_requete = ' AND ';
82
	private function fabriquerSousRequeteRecherche($id_utilisateur, $criteres) {
71
		
83
		
72
		foreach ($criteres as $nom_valeur)
84
		foreach ($criteres as $nom_valeur)
73
		{
85
		{
74
			if (count($nom_valeur) == 0)
86
			if (count($nom_valeur) == 0)
Line 94... Line 106...
94
				break;
106
				break;
Line 95... Line 107...
95
				
107
				
96
				
108
				
97
				// TODO: adapter la structure aux nouveaux mots clés
109
				// TODO: adapter la structure aux nouveaux mots clés
98
                case 'mots_cles':
110
                case 'mots_cles':
99
                    $liste_mc = explode(";",$nom_valeur[1]);
-
 
100
                    $sous_requete .= '(' ;
-
 
101
                    foreach($liste_mc as $mot) {
-
 
102
 
-
 
103
                        if(trim($mot) != '')
111
                    $liste_mc = str_replace(";",',',$nom_valeur[1]);
104
                        {
-
 
105
                          $sous_requete .= "mots_cles LIKE '%".$this->proteger($mot)."%' OR " ;
-
 
106
                        }
-
 
107
                    }
112
                    $sous_requete .= '(' ;   
108
                    $sous_requete = rtrim($sous_requete,' OR ');
113
                    'id_observation IN (SELECT id_observation FROM cel_obs_mots_cles WHERE id_mot_cle_utilisateur IN ('.$liste_mc.')';
Line 109... Line 114...
109
                    $sous_requete .= ') AND ' ;
114
                    $sous_requete .= ') AND ' ;
110
                break;
115
                break;