136,7 → 136,7 |
$valeur = '%'.str_replace(' ','% ', $valeur); |
$valeur .= '%'; |
} |
$this->requete_condition[] = $nom_champ.' LIKE '.$this->getBdd()->proteger($valeur); |
$this->requete_condition[] = 'nva.'.$nom_champ.' LIKE '.$this->getBdd()->proteger($valeur); |
} |
} |
} |
152,7 → 152,7 |
} |
} |
} else { //rajoute distinct pour ne pas avoir plusieurs fois le même nom |
$this->requete_champ = array('distinct(id)', 'nom_vernaculaire '); |
$this->requete_champ = array('distinct(nva.num_nom_vernaculaire)', 'nva.nom_vernaculaire '); |
} |
} |
|
159,7 → 159,7 |
//requete : /noms-vernaculaires/#id (ex : /noms-vernaculaires/7) |
public function traiterRessourceId() { |
if (is_numeric($this->ressources[0])) { |
$this->requete_condition[] = ' id = '.$this->getBdd()->proteger($this->ressources[0]); |
$this->requete_condition[] = ' nva.num_nom_vernaculaire = '.$this->getBdd()->proteger($this->ressources[0]); |
$this->format_reponse .= '/id'; |
} elseif ($this->ressources[0] == 'attributions') { |
$this->format_reponse .= '/attributions'; |
198,11 → 198,12 |
//+------------------------------------------------------------------------------------------------------+ |
public function assemblerLaRequete() { |
$requete = ' SELECT '.$this->formerRequeteChamp(). |
', CASE code_langue WHEN "fra" THEN 1 ELSE 0 END AS tri '. |
' FROM '.$this->table |
.$this->formerRequeteCondition(). |
' ORDER BY tri DESC, nom_vernaculaire ASC ' |
.$this->formerRequeteLimite(); |
', CASE nva.code_langue WHEN "fra" THEN 1 ELSE 0 END AS tri '. |
' FROM '.str_replace('nva', 'nva_index', $this->table).' inva'. |
' LEFT JOIN '.$this->table.' nva ON nva.num_nom_vernaculaire = inva.num_nom_vernaculaire ' |
.$this->formerRequeteCondition(). |
' ORDER BY tri DESC, nva.nom_vernaculaire ASC ' |
.$this->formerRequeteLimite(); |
return $requete; |
} |
|
240,10 → 241,13 |
|
//on récupère le nombre total de résultats de la requete (ex : le nombre d'id contenu dans la liste /noms-vernaculaires) |
public function recupererTotalResultat() { |
$distinct = ($this->format_reponse == 'noms-vernaculaires/attributions') ? 'id' : 'distinct id '; |
$distinct = ($this->format_reponse == 'noms-vernaculaires/attributions') ? '*' : 'distinct nva.num_nom_vernaculaire'; |
$requete = 'SELECT count('.$distinct.') as nombre FROM ' |
.$this->table |
.str_replace('nva', 'nva_index', $this->table).' inva ' |
.'INNER JOIN '.$this->table.' nva ON nva.num_nom_vernaculaire = ' |
.'inva.num_nom_vernaculaire ' |
.$this->formerRequeteCondition(); |
|
$res = $this->getBdd()->recuperer($requete); |
|
if ($res) { |
291,7 → 295,7 |
foreach ($tab as $key => $valeur) { |
if ($valeur != '') { |
switch ($key) { |
case 'id' : $num = $valeur; break; |
case 'num_nom_vernaculaire' : $num = $valeur; break; |
case 'nom_vernaculaire' : $this->table_retour['nom'] = $valeur; break; |
default : break; |
} |
345,8 → 349,10 |
} |
} |
} |
if (isset($this->masque)) $masque = implode('&', $this->masque); |
else $masque = 'Pas de masque'; |
$masque = $this->recupererMasque(); |
if($masque == "") { |
$masque = "Pas de masque"; |
} |
$table_retour_oss = array($masque, $oss); |
return $table_retour_oss; |
} |
365,19 → 371,20 |
} |
foreach ($resultat as &$tab) { |
unset($tab['tri']); |
$resultat_json[$tab['id']]['id'] = $tab['id']; |
$resultat_json[$tab['id']]['nom_vernaculaire'] = $tab['nom_vernaculaire']; |
$resultat_json[$tab['id']]['code_langue'] = $tab['code_langue']; |
$resultat_json[$tab['id']]['taxon.code'] = 'bdtxa.nt:'.$tab['num_taxon']; |
$id_nom = $tab['num_nom_vernaculaire']; |
$resultat_json[$id_nom]['id'] = $id_nom; |
$resultat_json[$id_nom]['nom_vernaculaire'] = $tab['nom_vernaculaire']; |
$resultat_json[$id_nom]['code_langue'] = $tab['code_langue']; |
$resultat_json[$id_nom]['taxon.code'] = 'bdtxa.nt:'.$tab['num_taxon']; |
if ($this->retour_format == 'max') { |
$resultat_json[$tab['id']]['num_taxon'] = $tab['num_taxon']; |
$resultat_json[$tab['id']]['nom_retenu.code'] = $tab['num_taxon']; |
$resultat_json[$tab['id']]['taxon'] = $tab['num_taxon']; |
$resultat_json[$id_nom]['num_taxon'] = $tab['num_taxon']; |
$resultat_json[$id_nom]['nom_retenu.code'] = $tab['num_taxon']; |
$resultat_json[$id_nom]['taxon'] = $tab['num_taxon']; |
$this->taxons[] = $tab['num_taxon']; // utilisé pour chercher les noms latins plus bas |
$resultat_json[$tab['id']]['href'] = $this->ajouterHref('noms-vernaculaires', $tab['id']); |
$resultat_json[$id_nom]['href'] = $this->ajouterHref('noms-vernaculaires', $id_nom); |
|
if($this->champs_supp != array()) { |
$resultat_json[$tab['id']] = $this->ajouterChampsOntologieLigneResultat($tab); |
$resultat_json[$id_nom] = $this->ajouterChampsOntologieLigneResultat($tab); |
} |
} |
} |
481,8 → 488,8 |
public function formaterNomsVernaculairesId($resultat) { |
foreach ($resultat as $taxon) { // pour chaque attribution à un taxon bdtxa |
// on crée les variables qui serviront de clés et on les enléves du tableau |
$num_nom = $taxon['id']; // unique pour un trinôme id, langue, taxon |
unset($taxon['id']); |
$num_nom = $taxon['num_nom_vernaculaire']; // unique pour un trinôme id, langue, taxon |
unset($taxon['num_nom_vernaculaire']); |
$langue = $taxon['code_langue']; |
unset($taxon['code_langue']); |
|
503,7 → 510,7 |
} |
|
public function afficherDonnees($champ, $valeur, $langue = '', $num_nom = '') { |
if ($champ == 'id' || $champ == 'nom_vernaculaire') { |
if ($champ == 'num_nom_vernaculaire' || $champ == 'nom_vernaculaire') { |
$this->table_retour[$champ] = $valeur; |
} elseif (preg_match('/^(.*)\.code$/', $champ, $match)) { |
switch ($match[1]) { |