Hypothétiquement I trois tables: * recettes - contient des recettes * ingrédients - liste des articles * repas - Liste des repasPHP et MYSQL: la construction d'une requête basée sur des valeurs d'entrée multiples des utilisateurs
J'ai une forme qui génère une sélection comme:
Choose what ingredients you have:
- apples
- bananas
- cherries
Choose the meal this is for:
- breakfast
- lunch
- dinner
Je veux que l'utilisateur soit en mesure de choisir l'un ou aucun de ces éléments, à savoir qu'ils peuvent choisir des pommes ou de cerises oU (bananes & & déjeuner)
Quand je requête MySQL ma requête est à peu près
select recipes.* from recipes
ou
select recipes.* from recipes, ingredients
where recipes.id= ingredients.id and ingredients.list in ('apple');
ou
select recipes.*
from recipes, ingredients, meal
where recipes.id= ingredients.id
and ingredients.list
and ingredients.id = meals.id
and ingredients.list ('apple')
and meals.list in ('lunch');
est-il un bon moyen de dire (en PHP) si ce tableau existe (c'est à dire is_array (ingrédients) ajouter à la requête la table (ingrédients) et à la fin tack sur (".ingredients.list in ('pomme')) ...
sans avoir à écrire toutes les combinaisons possibles ou entrées possibles (à savoir l'utilisateur du sélectionné dans la liste des ingrédients ou dans la liste des ingrédients et des repas, ou d'aucune liste)?
+1 pour une question bien formatée, en particulier pour un nouvel utilisateur! Voulez-vous essentiellement des «critères de recherche» - pour tirer «toutes les recettes impliquant des pommes» et «toutes les recettes de déjeuner impliquant des bananes», etc? –
Avez-vous envisagé d'utiliser un ORM? Cela vous permettra de construire une requête dynamique avec très peu d'effort. – DrColossos
pas si bien. En fait, il est difficile de lire une très longue ligne –