Line 378... |
Line 378... |
378 |
' ON (coi.id_image = cim.id_image) '.
|
378 |
' ON (coi.id_image = cim.id_image) '.
|
379 |
' LEFT JOIN cel_obs AS ci '.
|
379 |
' LEFT JOIN cel_obs AS ci '.
|
380 |
' ON (coi.id_observation = ci.id_observation) '.
|
380 |
' ON (coi.id_observation = ci.id_observation) '.
|
381 |
(($this->etreFluxAdmin()) ? '' : 'WHERE ci.transmission = 1 ').
|
381 |
(($this->etreFluxAdmin()) ? '' : 'WHERE ci.transmission = 1 ').
|
382 |
'ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby : 'cim.date_creation DESC').' '.
|
382 |
'ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby : 'cim.date_creation DESC').' '.
|
383 |
"LIMIT "; //$this->start, $this->limit ";
|
383 |
"LIMIT $this->start, $this->limit ";
|
384 |
|
- |
|
- |
|
384 |
//echo $requete;
|
385 |
$elements = $this->executerRequete($requete);
|
385 |
$elements = $this->executerRequete($requete);
|
Line 386... |
Line 386... |
386 |
|
386 |
|
387 |
// Création du contenu
|
387 |
// Création du contenu
|
388 |
if ($elements != false && count($elements) > 0) {
|
388 |
if ($elements != false && count($elements) > 0) {
|
Line 397... |
Line 397... |
397 |
|
397 |
|
398 |
private function getServiceMultiCriteres() {
|
398 |
private function getServiceMultiCriteres() {
|
399 |
$contenu = '';
|
399 |
$contenu = '';
|
400 |
if (isset($_GET['debut'])) $this->start = $_GET['debut'];
|
400 |
if (isset($_GET['debut'])) $this->start = $_GET['debut'];
|
401 |
if (isset($_GET['limite'])) $this->limite = $_GET['limite'];
|
401 |
if (isset($_GET['limite'])) $this->limite = $_GET['limite'];
|
402 |
|
402 |
|
403 |
if($this->parametresSontDemandes()) {
|
403 |
if ($this->parametresSontDemandes()) {
|
404 |
$requete = $this->creerRequeteAvecParametres();
|
404 |
$requete = $this->creerRequeteAvecParametres();
|
405 |
} else {
|
405 |
} else {
|
406 |
$requete = $this->creerRequeteSansParametres();
|
406 |
$requete = $this->creerRequeteSansParametres();
|
407 |
}
|
407 |
}
|
Line 414... |
Line 414... |
414 |
$this->messages[] = "Aucune image disponible.";
|
414 |
$this->messages[] = "Aucune image disponible.";
|
415 |
}
|
415 |
}
|
Line 416... |
Line 416... |
416 |
|
416 |
|
417 |
return $contenu;
|
417 |
return $contenu;
|
418 |
}
|
418 |
}
|
419 |
|
419 |
|
420 |
private function parametresSontDemandes() {
|
420 |
private function parametresSontDemandes() {
|
421 |
$criteres = $this->traiterCriteresMultiples($_GET) ;
|
421 |
$criteres = $this->traiterCriteresMultiples($_GET) ;
|
422 |
return (isset($_GET['recherche']) && $_GET['recherche'] != '') || !empty($criteres);
|
422 |
return (isset($_GET['recherche']) && $_GET['recherche'] != '') || !empty($criteres);
|
423 |
}
|
423 |
}
|
424 |
|
424 |
|
425 |
private function creerRequeteSansParametres() {
|
425 |
private function creerRequeteSansParametres() {
|
426 |
// Première sous requete pour que le limite se fasse d'abord sur les images
|
426 |
// Première sous requete pour que le limite se fasse d'abord sur les images
|
427 |
// et pas la jointure de toutes les tables
|
427 |
// et pas la jointure de toutes les tables
|
- |
|
428 |
$sous_requete = 'SELECT * '.
|
428 |
$sous_requete_limitative = 'SELECT * FROM cel_images c '.
|
429 |
'FROM cel_images c '.
|
429 |
' WHERE id_image '.
|
430 |
'WHERE id_image '.
|
430 |
' IN (SELECT id_image FROM cel_obs_images a '.
|
431 |
' IN (SELECT id_image FROM cel_obs_images a '.
|
431 |
(($this->etreFluxAdmin()) ? '' : 'INNER JOIN cel_obs b ON b.id_observation = a.id_observation AND b.transmission = 1 ').
|
432 |
(($this->etreFluxAdmin()) ? '' : 'INNER JOIN cel_obs b ON b.id_observation = a.id_observation AND b.transmission = 1 ').
|
432 |
') ';
|
433 |
') ';
|
433 |
$sous_requete_limitative .= ' ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby : 'c.date_creation DESC').' '.
|
434 |
$sous_requete .= ' ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby : 'c.date_creation DESC').' '.
|
434 |
"LIMIT $this->start,$this->limit ";
|
435 |
"LIMIT $this->start,$this->limit ";
|
435 |
|
436 |
|
436 |
// Construction de la requête
|
437 |
// Construction de la requête
|
437 |
$requete = 'SELECT *, b.mots_cles_texte as mots_cles_texte_obs, c.mots_cles_texte as mots_cles_texte_images, '.
|
438 |
$requete = 'SELECT *, b.mots_cles_texte as mots_cles_texte_obs, c.mots_cles_texte as mots_cles_texte_images, '.
|
438 |
' b.commentaire as commentaire_obs, c.commentaire as commentaire_img '.
|
439 |
' b.commentaire as commentaire_obs, c.commentaire as commentaire_img '.
|
439 |
'FROM ('.$sous_requete_limitative.') as c '.
|
440 |
'FROM ('.$sous_requete.') as c '.
|
440 |
' INNER JOIN cel_obs_images AS a '.
|
441 |
' INNER JOIN cel_obs_images AS a '.
|
441 |
' ON (a.id_image = c.id_image) '.
|
442 |
' ON (a.id_image = c.id_image) '.
|
442 |
' INNER JOIN cel_obs AS b '.
|
443 |
' INNER JOIN cel_obs AS b '.
|
443 |
' ON (a.id_observation = b.id_observation) AND b.ce_utilisateur = c.ce_utilisateur ';
|
- |
|
- |
|
444 |
' ON (a.id_observation = b.id_observation) AND b.ce_utilisateur = c.ce_utilisateur ';
|
444 |
|
445 |
//echo $requete;
|
445 |
return $requete;
|
446 |
return $requete;
|
446 |
}
|
447 |
}
|
447 |
|
448 |
|
448 |
private function creerRequeteAvecParametres() {
|
449 |
private function creerRequeteAvecParametres() {
|
449 |
// Construction de la requête
|
450 |
// Construction de la requête
|
450 |
$requete = 'SELECT *, b.mots_cles_texte as mots_cles_texte_obs, c.mots_cles_texte as mots_cles_texte_images, '.
|
451 |
$requete = 'SELECT *, b.mots_cles_texte as mots_cles_texte_obs, c.mots_cles_texte as mots_cles_texte_images, '.
|
451 |
' b.commentaire as commentaire_obs, c.commentaire as commentaire_img '.
|
452 |
' b.commentaire as commentaire_obs, c.commentaire as commentaire_img '.
|
Line 469... |
Line 470... |
469 |
}
|
470 |
}
|
470 |
$requete = str_replace(' AND ) ',' ', $requete);
|
471 |
$requete = str_replace(' AND ) ',' ', $requete);
|
471 |
$requete = rtrim($requete, 'AND ');
|
472 |
$requete = rtrim($requete, 'AND ');
|
472 |
$requete .= ' ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby :
|
473 |
$requete .= ' ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby :
|
473 |
'c.date_creation DESC').' '."LIMIT $this->start,$this->limit ";
|
474 |
'c.date_creation DESC').' '."LIMIT $this->start,$this->limit ";
|
474 |
|
- |
|
- |
|
475 |
//echo $requete;
|
475 |
return $requete;
|
476 |
return $requete;
|
476 |
}
|
477 |
}
|
Line 477... |
Line 478... |
477 |
|
478 |
|
478 |
private function creerSousRequeteRechercheParCriteres($criteres) {
|
479 |
private function creerSousRequeteRechercheParCriteres($criteres) {
|