$demande){ switch($demande){ case 1: $clauseIngredientsRequis .= " AND ingredient = $id"; break; case -1: $clauseIngredientsInterdits .= " OR ingredient = $id"; break; default: break; } } $clauseIngredientsRequis = "AND r.id IN (SELECT recette FROM RecetteIngredient WHERE 1=1 $clauseIngredientsRequis)"; $clauseIngredientsInterdits = "r.id NOT IN (SELECT recette FROM RecetteIngredient WHERE 0=1 $clauseIngredientsInterdits)"; $whereClause .= $clauseIngredientsInterdits . $clauseIngredientsRequis; //clause des utensiles $clauseUstensilesAutorises = ''; foreach($_SESSION['tri']['ustensile'] as $id => $demande){ if($demande){ $clauseUstensilesAutorises .= " OR ustensile = $id"; } } $clauseUstensilesAutorises = " AND r.id NOT IN (SELECT recette FROM RecetteUstensile WHERE 0=1 $clauseUstensilesAutorises)"; $whereClause .= $clauseUstensilesAutorises; //clause des genres $clauseGenre = ' AND (1=0 '; foreach($_SESSION['tri']['genre'] as $id => $demande){ $clauseGenre .= " OR genre = $id"; } $whereClause .= $clauseGenre . ')'; }else{ unset($_SESSION['tri']); } $requeteListeRecettes = " SELECT r.id idRecette, r.nom nom, r.tempsTotal duree, g.nom genre, g.id idGenre FROM Recette r JOIN Genre g ON g.id = r.genre WHERE $whereClause ORDER BY $typeOrdreListe $sensOrdreListe; "; //récupération des différentes recettes correspondant aux POST, si il est défini $resultatListeRecettes = getAssocFromQueryString($requeteListeRecettes); if ($resultatListeRecettes){ $listeRecettes = []; foreach ($resultatListeRecettes as $key => $recette) { $idRecette = $recette['idRecette']; $listeRecettes[$idRecette] = []; foreach ($recette as $clef => $info){ if ($clef != 'idRecette'){ if($clef == 'duree'){$info = calculeTexteFromMinutes($info);} $listeRecettes[$idRecette][$clef] = $info; } } } } //recuperation des différentes tables $listeIngredient = getAllIngredients(); $listeUstensile = getAllUstensiles(); $listePreparation = getAllPreparations(); $listeGenre = getAllGenres(); ?>