Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1499 Rev 1506
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) {