Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 742 Rev 749
Line 399... Line 399...
399
			$criteres = $this->traiterCriteresMultiples($_GET) ;
399
			$criteres = $this->traiterCriteresMultiples($_GET) ;
400
			if (!empty($criteres)) {
400
			if (!empty($criteres)) {
401
				$requete .= $this->creerSousRequeteRechercheParCriteres($criteres);
401
				$requete .= $this->creerSousRequeteRechercheParCriteres($criteres);
402
			}	
402
			}	
403
		}
403
		}
-
 
404
		$requete = rtrim($requete,' AND ) ');
404
		$requete = rtrim($requete, 'AND ');
405
		$requete = rtrim($requete, 'AND ');
405
		$requete .= ' ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby  : 
406
		$requete .= ' ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby  : 
406
			'c.ci_meta_date_ajout DESC').' '."LIMIT $this->start,$this->limit ";
407
			'c.ci_meta_date_ajout DESC').' '."LIMIT $this->start,$this->limit ";
Line 407... Line 408...
407
		
408
		
Line 449... Line 450...
449
		$requete = rtrim($requete,' AND ');
450
		$requete = rtrim($requete,' AND ');
450
		return $requete;
451
		return $requete;
451
	}
452
	}
Line 452... Line 453...
452
	
453
	
453
	private function creerSousRequeteMotsCles($mot_cle) {
454
	private function creerSousRequeteMotsCles($mot_cle) {
454
		$requete = ' ( ';
455
		$requete = '';
455
		if (preg_match('/.*OU.*/', $mot_cle)) {
456
		if (preg_match('/.*OU.*/', $mot_cle)) {
456
			$requete = $this->creerSousRequeteMotsClesOu($mot_cle);
457
			$requete = $this->creerSousRequeteMotsClesOu($mot_cle);
457
		} else if (preg_match('/.*ET.*/', $mot_cle)) {
458
		} else if (preg_match('/.*ET.*/', $mot_cle)) {
458
			$requete = $this->creerSousRequeteMotsClesEt($mot_cle);
459
			$requete = $this->creerSousRequeteMotsClesEt($mot_cle);
459
		} else {		
460
		} else {		
460
			// Construction de la requête
461
			// Construction de la requête
461
			$prerequete = 	"SELECT cmc_id_mot_cle_utilisateur, cmc_id_proprietaire FROM cel_mots_cles_images WHERE ".
462
			$prerequete = 	"SELECT cmc_id_mot_cle_utilisateur, cmc_id_proprietaire FROM cel_mots_cles_images WHERE ".
462
				'cmc_id_mot_cle_general = '.$this->bdd->quote($this->encoderMotCle($mot_cle)); 
463
				'cmc_id_mot_cle_general = '.$this->bdd->quote($this->encoderMotCle($mot_cle)); 
463
			$elements = $this->executerRequete($prerequete);
464
			$elements = $this->executerRequete($prerequete);
-
 
465
			if ($elements != false && count($elements) > 0) {
464
			if ($elements != false && count($elements) > 0) {
466
				$requete = ' ( ';
465
				foreach ($elements as $occurence) {
467
				foreach ($elements as $occurence) {
466
					$requete .= '(ci_meta_mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND ci_ce_utilisateur = '.
468
					$requete .= '(ci_meta_mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND ci_ce_utilisateur = '.
467
						$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';	
469
						$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';	
468
				}
470
				}
469
			}
471
			}echo $requete;
470
		}
472
		}
471
		$requete = rtrim($requete,' OR ').' ) AND ';
473
		$requete = rtrim($requete,' OR ').' ) AND ';
472
		return $requete;
474
		return $requete;
Line 473... Line 475...
473
	}
475
	}
474
	
476
	
475
	private function creerSousRequeteMotsClesOu($mot_cle) {
-
 
476
		$requete = ' ( ';
477
	private function creerSousRequeteMotsClesOu($mot_cle) {
477
		
478
		$requete = '';		
478
		$tab_mots_cles = explode('OU', $mot_cle);
479
		$tab_mots_cles = explode('OU', $mot_cle);
479
		$where = '';
480
		$where = '';
480
		foreach ($tab_mots_cles as $mot) {
481
		foreach ($tab_mots_cles as $mot) {
Line 484... Line 485...
484
		
485
		
485
		// Construction de la requête
486
		// Construction de la requête
486
		$prerequete = 	"SELECT cmc_id_mot_cle_utilisateur, cmc_id_proprietaire FROM cel_mots_cles_images WHERE $where "; 
487
		$prerequete = 	"SELECT cmc_id_mot_cle_utilisateur, cmc_id_proprietaire FROM cel_mots_cles_images WHERE $where "; 
487
		$elements = $this->executerRequete($prerequete);//print_r($elements);
488
		$elements = $this->executerRequete($prerequete);//print_r($elements);
-
 
489
		if ($elements != false && count($elements) > 0) {
488
		if ($elements != false && count($elements) > 0) {
490
			$requete = ' ( ';
489
			foreach ($elements as $occurence) {
491
			foreach ($elements as $occurence) {
490
				$requete .= '(ci_meta_mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND ci_ce_utilisateur = '.
492
				$requete .= '(ci_meta_mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND ci_ce_utilisateur = '.
491
					$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
493
					$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
492
			}
494
			}
493
		}
495
		}
494
		return $requete;
496
		return $requete;
Line 495... Line 497...
495
	}
497
	}
496
	
498
	
497
	private function creerSousRequeteMotsClesEt($mot_cle) {
499
	private function creerSousRequeteMotsClesEt($mot_cle) {
498
		$requete = ' ( ';
500
		$requete = '';
499
		$where = '';
501
		$where = '';
500
		$champs = 'a.cmc_id_proprietaire , ';
502
		$champs = 'a.cmc_id_proprietaire , ';
Line 516... Line 518...
516
		
518
		
517
		// Construction de la requête
519
		// Construction de la requête
518
		$prerequete = 	"SELECT $champs FROM $table WHERE $where ";
520
		$prerequete = 	"SELECT $champs FROM $table WHERE $where ";
519
		$elements = $this->executerRequete($prerequete);//print_r($elements);
521
		$elements = $this->executerRequete($prerequete);//print_r($elements);
-
 
522
		if ($elements != false && count($elements) > 0) {
520
		if ($elements != false && count($elements) > 0) {
523
			$requete = ' ( ';
521
			foreach ($elements as $occurence) {
524
			foreach ($elements as $occurence) {
522
				$requete .= ' (';
525
				$requete .= ' (';
523
				for ($j = 'a'; $j < $i; $j++) {
526
				for ($j = 'a'; $j < $i; $j++) {
524
					$requete .= 'ci_meta_mots_cles like "%'.$occurence[$j].'%" AND ';
527
					$requete .= 'ci_meta_mots_cles like "%'.$occurence[$j].'%" AND ';