prepare('SELECT * FROM Patient WHERE Id = :id'); $req->execute(['id' => $id]); return StaticRepo::delNumeric( $req->fetch(), true ); } public static function add($civilite,$prenom,$nom,$adresse,$adresse2,$ville,$codePostal,$dateNaissance,$lieuNaissance,$numSecu,$medecinTraitant = null){ $correctTypes = StaticRepo::checkParam($civilite,'Civilite'); $correctTypes = $correctTypes && StaticRepo::checkParam($prenom,'String45'); $correctTypes = $correctTypes && StaticRepo::checkParam($nom,'String45'); $correctTypes = $correctTypes && StaticRepo::checkParam($adresse,'String255'); $correctTypes = $correctTypes && ( $adresse2 == 'null' || $adresse2 === null || StaticRepo::checkParam($adresse2, 'String255') ); $correctTypes = $correctTypes && StaticRepo::checkParam($ville,'String50'); $correctTypes = $correctTypes && StaticRepo::checkParam($codePostal,'String'); $correctTypes = $correctTypes && StaticRepo::checkParam($dateNaissance,'Date'); $correctTypes = $correctTypes && StaticRepo::checkParam($lieuNaissance,'String50'); $correctTypes = $correctTypes && ( $medecinTraitant == 'null' || StaticRepo::checkParam($medecinTraitant, 'Numeric')); if( !$correctTypes ) return false; $dateNaissance = strtotime($dateNaissance); $dateNaissance = Date('o-m-d', $dateNaissance); $req = StaticRepo::getConnexion()->prepare("INSERT INTO Patient VALUES(DEFAULT, :civilite, :nom, :prenom, :adresse, :adresse2, :ville, :codePostal, :dateNaissance, :lieuNaissance, :numSecu, :medecin )"); $result = $req->execute([ 'civilite' => $civilite, 'nom' => $nom, 'prenom' => $prenom, 'adresse' => $adresse, 'adresse2' => (strlen($adresse2)>0) ? $adresse2 : NULL, 'ville' => $ville, 'codePostal' => $codePostal, 'dateNaissance' => $dateNaissance, 'lieuNaissance' => $lieuNaissance, 'numSecu' => $numSecu, 'medecin' => $medecinTraitant ]); //PDO renvoie un ID sous forme de char, on transtype $id = StaticRepo::getConnexion()->lastInsertId(); settype($id,'integer'); if($result)return $id; else return false; } public static function update( $id, $civilite, $prenom, $nom, $adresse, $adresse2, $ville, $codePostal, $dateNaissance, $lieuNaissance, $numSecu, $medecinTraitant ){ $correctTypes = StaticRepo::checkParam($id, 'Numeric'); $correctTypes = $correctTypes && StaticRepo::checkParam($civilite, 'Civilite'); $correctTypes = $correctTypes && StaticRepo::checkParam($prenom,'String45'); $correctTypes = $correctTypes && StaticRepo::checkParam($nom,'String45'); $correctTypes = $correctTypes && StaticRepo::checkParam($adresse,'String255'); $correctTypes = $correctTypes && ( $adresse2 == 'null' || $adresse2 == '' || $adresse2 === null || StaticRepo::checkParam($adresse2, 'String255') ); $correctTypes = $correctTypes && StaticRepo::checkParam($ville,'String50'); $correctTypes = $correctTypes && StaticRepo::checkParam($codePostal,'String'); $correctTypes = $correctTypes && StaticRepo::checkParam($dateNaissance,'Date'); $correctTypes = $correctTypes && StaticRepo::checkParam($lieuNaissance,'String50'); $correctTypes = $correctTypes && ( $medecinTraitant == 'null' || $medecinTraitant === null || StaticRepo::checkParam($medecinTraitant, 'Numeric') ); if( !$correctTypes ) return false; // on enlève les espaces du numéro de sécu $numSecu = str_replace(' ', '', $numSecu); // on met la date de naissance au bon format $dateNaissance = DateTime::createFromFormat('d/m/Y', $dateNaissance)->format('Y-m-d 00:00:00'); exit(); $req = StaticRepo::getConnexion()->prepare('UPDATE Patient SET Civilite = :civilite, Nom = :nom, Prenom = :prenom, Adresse = :adresse, Adresse2 = :adresse2, Ville = :ville, CodePostal = :codePostal, DateNaissance = :dateNaissance, LieuNaissance = :lieuNaissance, NumSecuriteSociale = :numSecu, MedecinTraitant = :medecin WHERE Id = :id'); $result = $req->execute(['civilite' => $civilite, ':nom' => $nom, ':prenom' => $prenom, ':adresse' => $adresse, ':adresse2' => $adresse2, ':ville' => $ville, ':codePostal' => $codePostal, ':dateNaissance' => $dateNaissance, ':lieuNaissance' => $lieuNaissance, ':numSecu' => $numSecu, ':medecin' => $medecinTraitant, ':id' => $id]); //PDO renvoie un ID sous forme de char, on transtype $id = StaticRepo::getConnexion()->lastInsertId(); settype($id,'integer'); if($result) return $id; else return false; } public static function delete($idPatient){ // si format erroné, retourne FALSE if( !StaticRepo::checkParam($idPatient, 'Numeric') ) return false; $req = StaticRepo::getConnexion()->prepare('DELETE FROM Patient WHERE Patient.Id = :id'); return $req->execute([':id' => $idPatient]); } public static function updateMedecinTraitant($idPatient,$idMedecin){ if(!StaticRepo::checkParam($idPatient,'Integer') && !StaticRepo::checkParam($idMedecin,'Integer')){return false;} $req = StaticRepo::getConnexion()->prepare('UPDATE Patient SET MedecinTraitant = :medecin WHERE Id = :id'); return $req->execute(['medecin' => $idMedecin, 'id' => $idPatient]); } public static function search($nom, $prenom){ if( !StaticRepo::checkParam($prenom,'String45') && !StaticRepo::checkParam($nom,'String45') ) return false; // on définit les valeurs (peuvent être nulles) $optPrenom = ( $prenom != 'null' && StaticRepo::checkParam($prenom,'String45') ) ? '%'.$prenom.'%' : '%'; $optNom = ( $nom != 'null' && StaticRepo::checkParam($nom, 'String45') ) ? '%'.$nom.'%' : '%'; $req = StaticRepo::getConnexion()->query("SELECT Id, Civilite, Nom, Prenom, DATE_FORMAT(DateNaissance, '%d/%m/%Y') as DateNaissance, NumSecuriteSociale FROM Patient WHERE Nom LIKE '".$optNom."' AND Prenom LIKE '".$optPrenom."' ORDER BY Nom, Prenom ASC"); return StaticRepo::delNumeric( $req->fetchAll() ); } public static function getAll(){ $req = StaticRepo::getConnexion()->query('SELECT * FROM Patient ORDER BY nom, prenom ASC'); return StaticRepo::delNumeric( $req->fetchAll() ); } }