table = 'clients'; } //~ public function set(string $variable, $value) //~ { //~ $this->$variable = $value; //~ return($this); //~ } // getters public function getID(): int { return $this->ID; } public function getCodeClient(): string { return $this->code_client; } // setters public function setID(int $value) // inutile? il s'autoincrémente { $this->ID = $value; return($this); } public function setPrenom_nom(string $value) { $this->prenom_nom = $value; return($this); } public function setCode_client(string $value) { $this->code_client = $value; return($this); } public function setAdresse(string $value) { $this->adresse = $value; return($this); } public function setTelephone(string $value) // chaine parce que zenity renvoie une chaine et parce qu'on garde le 0 au début { if(is_numeric($value)) { $this->telephone = $value; } return($this); } public function setCourriel(string $value) { $this->courriel = $value; return($this); } public function setCommentaires(string $value) { $this->commentaires = $value; return($this); } public function newRow(array $input) { $this->hydrate(['prenom_nom' => $input[0], 'code_client' => $input[1], 'adresse' => $input[2], 'telephone' => $input[3], 'courriel' => $input[4], 'commentaires' => $input[5]]); $this->create(); // ID obtenu par auto-incrémentation $this->ID = $this->db->lastInsertId(); // méthode de PDO } //~ public function setIdFromLastInsertID() // à faire juste après l'écriture d'une nouvelle entrée //~ { //~ $this->db = parent::getInstance(); // $db est créée dans Model::execQuery() //~ $this->ID = $this->db->lastInsertId(); // méthode de PDO //~ } public function findByKeywords(array $keywords, string $field): array // n'hydrate pas les variables, on doit choisir un client et hydrater ensuite { $result = []; for($i = 0; $i < count($keywords); $i++) { // tableau à deux dimensions obtenu pour un mot clé $query_result = $this->execQuery('SELECT * FROM ' . $this->table . ' WHERE ' . $field . ' LIKE "%' . $keywords[$i] . '%"')->fetchAll(); foreach($query_result as $one_array) // pour chaque sous tableau { $already_exist = false; for($j = 0; $j < count($result); $j++) // pour chaque tableau déjà enregistré dans le tableau $result { if($result[$j]['ID'] === $one_array['ID']) { $already_exist = true; } } if(!$already_exist) { $result[] = $one_array; } } } return($result); } }