diff --git a/Models/IngredientModel.php b/Models/IngredientModel.php index 4c316d8..d224d7f 100644 --- a/Models/IngredientModel.php +++ b/Models/IngredientModel.php @@ -2,18 +2,87 @@ final class IngredientModel { + public $I_INGREDIENT_ID; + public $I_RECIPE_ID; + public $S_NAME; + public $S_QUANTITY; + + public function __construct($I_RECIPE_ID, $S_NAME, $S_QUANTITY) + { + $this->I_RECIPE_ID = $I_RECIPE_ID; + $this->S_NAME = $S_NAME; + $this->S_QUANTITY = $S_QUANTITY; + } + + private static function createFromRow($A_row, $I_ingredient_id) + { + $O_ingr = new IngredientModel($A_row["RECIPE_ID"], $A_row["NAME"], $A_row["QUANTITY"]); + $O_ingr->I_INGREDIENT_ID = $I_ingredient_id; + return $O_ingr; + } + + public function insert(){ + $O_model = Model::get(); + $stmt = $O_model->prepare("SELECT 1 FROM INGREDIENT WHERE :name=name"); + $stmt->bindParam("name", $this->S_NAME); + $stmt->execute(); + if($stmt->rowCount() === 0){ + $stmt = $O_model->prepare("INSERT INTO INGREDIENT (NAME) VALUES(:name)"); + $stmt->bindParam("name", $this->S_NAME); + $stmt->execute(); + $this->I_INGREDIENT_ID = Model::get()->lastInsertId(); + } + $stmt = $O_model->prepare("INSERT INTO RECIPE_INGREDIENT VALUES(:recipe_id, :ingredient_id, :quantity)"); + $stmt->bindParam("recipe_id", $this->I_RECIPE_ID); + $stmt->bindParam("ingredient_id", $this->I_INGREDIENT_ID); + $stmt->bindParam("quantity", $this->S_QUANTITY); + $stmt->execute(); + } + + + public function delete(){ + $O_model = Model::get(); + $stmt = $O_model->prepare("DELETE FROM INGREDIENT WHERE ID=:id"); + $stmt->bindParam("id", $this->I_INGREDIENT_ID); + $stmt->execute(); + $stmt = $O_model->prepare("DELETE FROM RECIPE_INGREDIENT WHERE INGREDIENT_ID=:id"); + $stmt->execute(); + $stmt->bindParam("id", $this->I_INGREDIENT_ID); + $stmt->execute(); + } + public static function getByRecipeAndName($I_recipe_id, $S_name){ + $S_name = strtolower($S_name); + $O_model = Model::get(); + $stmt = $O_model->prepare("SELECT *, INGREDIENT.ID AS INGREDIENT_ID FROM INGREDIENT + JOIN RECIPE_INGREDIENT RI on INGREDIENT.ID = RI.INGREDIENT_ID + WHERE NAME=:name"); + $stmt->bindParam("name", $S_name); + $stmt->execute(); + + $row = $stmt->fetch(); + if ($row === false) return null; + + return self::createFromRow($row, $row["INGREDIENT_ID"]); + } public static function searchByRecipe($I_recipe_id) { $O_model = Model::get(); $stmt = $O_model->prepare(" - SELECT * FROM INGREDIENT + SELECT *, INGREDIENT.ID AS INGREDIENT_ID FROM INGREDIENT JOIN RECIPE_INGREDIENT ON RECIPE_INGREDIENT.INGREDIENT_ID=INGREDIENT.ID WHERE RECIPE_INGREDIENT.RECIPE_ID = :recipe_id "); $stmt->bindParam("recipe_id", $I_recipe_id); $stmt->execute(); - return $stmt->fetchAll(); + $A_ingr = array(); + foreach($stmt->fetchAll() as $row){ + array_push($A_ingr, self::createFromRow($row, $row["INGREDIENT_ID"])); + } + + return $A_ingr; } + + } diff --git a/Views/user/login.php b/Views/user/login.php index d83c349..89b1ba9 100644 --- a/Views/user/login.php +++ b/Views/user/login.php @@ -10,7 +10,7 @@ - + ">