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 867
Line 1... Line 1...
1
<?php
1
<?php
2
/*
2
/**
3
 * Created on 24 août 2011
3
* PHP Version 5
4
 *
4
*  
5
 * To change the template for this generated file go to
5
* Classe de recherche d'informations sur un taxon donné
-
 
6
*
-
 
7
* @category  PHP
-
 
8
* @package   jrest
-
 
9
* @author    david <david@tela-botania.org>
-
 
10
* @copyright 2010 Tela-Botanica
6
 * Window - Preferences - PHPeclipse - PHP - Code Templates
11
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
-
 
12
* @version   SVN: <svn_id>
-
 
13
* @link      /doc/jrest/
7
 */
14
*/
8
 
-
 
9
class RechercheInfosTaxon extends Cel {
15
class RechercheInfosTaxon extends Cel {
Line 10... Line 16...
10
 
16
 
Line 11... Line -...
11
	function rechercherInformationsComplementaires($numNom) {
-
 
12
 
-
 
13
		$DB=$this->connectDB($this->config);
17
	function rechercherInformationsComplementaires($numNom) {
14
 
18
 
15
		$query = "SELECT DISTINCT en_nom_genre, en_epithete_espece, en_nom_supra_generique, en_epithete_infra_generique,".
19
		$requete_infos_complementaires = "SELECT DISTINCT en_nom_genre, en_epithete_espece, en_nom_supra_generique, en_epithete_infra_generique,".
16
			     	       			"   auteur_bex.enaia_intitule_abrege AS abreviation_auteur_basio_ex ".
20
			     	       			"   auteur_bex.enaia_intitule_abrege AS abreviation_auteur_basio_ex ".
17
        	       			" , auteur_b.enaia_intitule_abrege AS abreviation_auteur_basio ".
21
        	       			" , auteur_b.enaia_intitule_abrege AS abreviation_auteur_basio ".
18
        	       			" , auteur_mex.enaia_intitule_abrege AS abreviation_auteur_modif_ex ".
22
        	       			" , auteur_mex.enaia_intitule_abrege AS abreviation_auteur_modif_ex ".
Line 35... Line 39...
35
       			 " AND en_ce_auteur_basio = auteur_b.enaia_id_intitule_naturaliste_abrege  ".
39
       			 " AND en_ce_auteur_basio = auteur_b.enaia_id_intitule_naturaliste_abrege  ".
36
       			 " AND en_ce_auteur_modif_ex = auteur_mex.enaia_id_intitule_naturaliste_abrege ".
40
       			 " AND en_ce_auteur_modif_ex = auteur_mex.enaia_id_intitule_naturaliste_abrege ".
37
        	     " AND en_ce_auteur_modif = auteur_m.enaia_id_intitule_naturaliste_abrege ".
41
        	     " AND en_ce_auteur_modif = auteur_m.enaia_id_intitule_naturaliste_abrege ".
38
			     " AND a.esn_id_version_projet_taxon=en_id_version_projet_nom ";
42
			     " AND a.esn_id_version_projet_taxon=en_id_version_projet_nom ";
Line -... Line 43...
-
 
43
 
Line 39... Line -...
39
 
-
 
40
 
-
 
41
	   $res =& $DB->query($query);
-
 
42
 
-
 
43
 
-
 
44
        if (DB::isError($res)) {
-
 
45
	        die($res->getMessage());
-
 
46
    	}
44
		$resultat_infos_complementaires = $this->requeter($requete_infos_complementaires);
47
 
-
 
48
    		// Nom retenu, Num Nomen nom retenu, Num Taxon,
-
 
49
										// Famille
45
 
Line 50... Line 46...
50
 
46
		// Nom retenu, Num Nomen nom retenu, Num Taxon, Famille
-
 
47
		$value=array('Nom_Retenu'=>"",'Num_Nom_Retenu'=>"0",'Num_Taxon'=>"0",'Famille'=>"");
51
		$value=array('Nom_Retenu'=>"",'Num_Nom_Retenu'=>"0",'Num_Taxon'=>"0",'Famille'=>"");
48
 
52
 
49
        if (is_array($resultat_infos_complementaires)) {
53
	        while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
50
		    foreach($resultat_infos_complementaires as $row) {
54
	        	$fam=$this->rechercherFamille($row['esn_id_taxon'],$DB);
51
		        	$fam=$this->rechercherFamille($row['esn_id_taxon']);
55
        	while (($fam['en_ce_rang']!='fin') && ($fam['en_ce_rang'] !=120)) {
52
	        	while (($fam['en_ce_rang']!='fin') && ($fam['en_ce_rang'] !=120)) {
56
	        	$fam=$this->rechercherFamille($fam['etr_id_taxon_2'],$DB);
53
		        	$fam=$this->rechercherFamille($fam['etr_id_taxon_2']);
57
        	}
54
	        	}
58
        	if ($fam['en_ce_rang']==120) {
55
	        	if ($fam['en_ce_rang']==120) {
59
        		$famille=$fam['en_nom_supra_generique'];
56
	        		$famille=$fam['en_nom_supra_generique'];
60
        	}
57
	        	}
61
        	else {
58
	        	else {
62
        		$famille="Famille inconnue";
-
 
63
        	}
59
	        		$famille="Famille inconnue";
64
        	$value=array('Nom_Retenu'=>$this->formaterNom($row),'Num_Nom_Retenu'=>$row['esn_id_nom'],'Num_Taxon'=>$row['esn_id_taxon'],'Famille'=>$famille);
60
	        	}
Line 65... Line 61...
65
 
61
	        	$value=array('Nom_Retenu'=>$this->formaterNom($row),'Num_Nom_Retenu'=>$row['esn_id_nom'],'Num_Taxon'=>$row['esn_id_taxon'],'Famille'=>$famille);
Line 66... Line 62...
66
 
62
		    }
Line 67... Line 63...
67
	    }
63
        }
68
 
64
 
69
	    return $value;
-
 
70
 
-
 
71
	}
65
	    return $value;
Line 72... Line 66...
72
	
66
 
Line 73... Line 67...
73
	function rechercherInformationsComplementairesSurNom($nom_saisi) {
67
	}
74
		
68
	
75
		$DB=$this->connectDB($this->config);
69
	function rechercherInformationsComplementairesSurNom($nom_saisi) {
76
		
70
				
77
		$value = array();
71
		$value = array();
78
		
72
		
Line 79... Line 73...
79
		if($nom_saisi != null && $nom_saisi != "") { 
73
		if($nom_saisi != null && $nom_saisi != "") { 
Line 80... Line -...
80
		
-
 
81
			$query = 'SELECT * FROM eflore_nom_intitule '.
74
		
82
			'WHERE eni_id_categorie_format = 3 AND '.
-
 
83
			'eni_id_version_projet_nom = 25 AND '.
-
 
84
			'(eni_id_valeur_format = 3 OR eni_id_valeur_format = 4) AND '.
-
 
85
			'eni_intitule_nom LIKE "'.$nom_saisi.'%" '.
75
			$requete_infos_comp_sur_nom = 'SELECT * FROM eflore_nom_intitule '.
86
			'ORDER BY LENGTH(eni_intitule_nom)';
76
			'WHERE eni_id_categorie_format = 3 AND '.
87
			
77
			'eni_id_version_projet_nom = 25 AND '.
88
			$res =& $DB->query($query);
78
			'(eni_id_valeur_format = 3 OR eni_id_valeur_format = 4) AND '.
89
			    
79
			'eni_intitule_nom LIKE "'.$nom_saisi.'%" '.
Line 90... Line 80...
90
			    
80
			'ORDER BY LENGTH(eni_intitule_nom)';
91
	        if (DB::isError($res)) {
81
			
Line 125... Line 115...
125
                }
115
                }
Line 126... Line 116...
126
 
116
 
Line 127... Line 117...
127
        }
117
        }
128
 
-
 
129
        return $nom .$this->retournerAuteur($rawnom) ;
118
 
Line 130... Line -...
130
 
-
 
131
 	}
119
        return $nom .$this->retournerAuteur($rawnom) ;
Line 132... Line 120...
132
 
120
 	}
Line 133... Line 121...
133
 
121
 
134
	function rechercherFamille($taxon,&$DB) {
122
	function rechercherFamille($taxon) {
135
	
123
	
136
		$row=array();
124
		$row=array();
137
	
125
	
138
		$query="SELECT DISTINCT en_ce_rang, etr_id_taxon_2, en_id_nom, en_nom_supra_generique ".
126
		$requete_famille = "SELECT DISTINCT en_ce_rang, etr_id_taxon_2, en_id_nom, en_nom_supra_generique ".
139
		" FROM eflore_taxon_relation, eflore_selection_nom, eflore_nom ".
127
		" FROM eflore_taxon_relation, eflore_selection_nom, eflore_nom ".
140
		" WHERE etr_id_taxon_1 = ".$taxon.
128
		" WHERE etr_id_taxon_1 = ".$taxon.
141
		" AND etr_id_version_projet_taxon_1 = 25 ".
129
		" AND etr_id_version_projet_taxon_1 = 25 ".
142
		" AND etr_id_categorie_taxon = 3 ".
130
		" AND etr_id_categorie_taxon = 3 ".
143
		" AND etr_id_valeur_taxon = 3 ".
131
		" AND etr_id_valeur_taxon = 3 ".
144
		" AND esn_id_taxon =  etr_id_taxon_2 ".
-
 
145
		" AND esn_ce_statut = 3 ".
132
		" AND esn_id_taxon =  etr_id_taxon_2 ".
146
		" AND esn_id_version_projet_taxon = etr_id_version_projet_taxon_1 ".
-
 
147
		" AND en_id_nom = esn_id_nom ".
133
		" AND esn_ce_statut = 3 ".
148
		" AND esn_id_version_projet_taxon=en_id_version_projet_nom  ";
-
 
Line 149... Line 134...
149
		$res =& $DB->query($query);
134
		" AND esn_id_version_projet_taxon = etr_id_version_projet_taxon_1 ".
150
	
-
 
151
		if (DB::isError($res)) {
-
 
152
	         die($res->getMessage());
-
 
153
	   	}
135
		" AND en_id_nom = esn_id_nom ".
154
	
-
 
155
		if ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
136
		" AND esn_id_version_projet_taxon=en_id_version_projet_nom  ";
Line -... Line 137...
-
 
137
		
156
			return $row;
138
		$resultat_recherche_famille = $this->requeter($requete_famille);
Line 157... Line 139...
157
	    }
139