entityName = 'pharmacyDrug'; } /** * @param $id * @return null|PharmacyDrug */ public function findById($idPharmacy, $idDrug) { $stmt = $this->pdo->prepare(" SELECT pd.IdPharmacy, pd.IdDrug, p.Name AS NamePharmacy, d.Name AS NameDrug, pd.Quantity FROM pharmacy AS p INNER JOIN pharmacyDrug AS pd ON p.Id = pd.IdPharmacy INNER JOIN drug AS d ON pd.IdDrug = d.Id WHERE pd.IdPharmacy = :IdPharmacy AND pd.IdDrug = :IdDrug "); $stmt->execute([ 'IdPharmacy' => $idPharmacy, 'IdDrug' => $idDrug ]); foreach ($stmt as $row) { return new PharmacyDrug($row['IdPharmacy'], $row['IdDrug'], $row['Quantity'], $row['NamePharmacy'], $row['NameDrug']); } return null; } /** * @return PharmacyDrug[] array */ public function findAll(): array { $stmt = $this->pdo->prepare(" SELECT pd.IdPharmacy, pd.IdDrug, p.Name AS NamePharmacy, d.Name AS NameDrug, pd.Quantity FROM pharmacy AS p INNER JOIN pharmacyDrug AS pd ON p.Id = pd.IdPharmacy INNER JOIN drug AS d ON pd.IdDrug = d.Id "); $stmt->execute(); $pharmacyDrugs = []; foreach ($stmt as $row) { $pharmacyDrugs[] = new PharmacyDrug($row['IdPharmacy'], $row['IdDrug'], $row['Quantity'], $row['NamePharmacy'], $row['NameDrug']); } return $pharmacyDrugs; } /** * @param PharmacyDrug $pharmacyDrug */ public function save(PharmacyDrug $pharmacyDrug) { $stmt = $this->pdo->prepare("INSERT INTO {$this->entityName} (IdPharmacy, IdDrug, Quantity) VALUES(:IdPharmacy, :IdDrug, :Quantity)"); $stmt->execute([ 'IdPharmacy' => $pharmacyDrug->idPharmacy, 'IdDrug' => $pharmacyDrug->idDrug, 'Quantity' => $pharmacyDrug->quantity ]); } /** * @param PharmacyDrug $pharmacyDrug */ public function update(PharmacyDrug $pharmacyDrug) { $stmt = $this->pdo->prepare("UPDATE {$this->entityName} SET Quantity = :Quantity WHERE IdPharmacy = :IdPharmacy AND IdDrug = :IdDrug"); $stmt->execute([ 'IdPharmacy' => $pharmacyDrug->idPharmacy, 'IdDrug' => $pharmacyDrug->idDrug, 'Quantity' => $pharmacyDrug->quantity ]); } /** * @param int $id */ public function delete($idPharmacy, $idDrug) { $stmt = $this->pdo->prepare("DELETE FROM {$this->entityName} WHERE IdPharmacy = :IdPharmacy AND IdDrug = :IdDrug"); $stmt->execute([ 'IdPharmacy' => $idPharmacy, 'IdDrug' => $idDrug ]); } }