name, it is also the name * of the tag hidden in a form * @remark $cn Db connexion * @param $p_name (string) name of the HIDDEN INPUT * @param $dbconx Database connx , if not given; use global $cn; */ function __construct($p_name,$dbconx=-1) { $this->name=$p_name; $this->id=0; if ( is_numeric($dbconx ) ) { global $cn; $this->dbconx=$cn; }else { $this->dbconx=$dbconx; } } function __toString(): string { return "Single_Record[name=" . $this->name . ", id=" . $this->id . ", dbconx=" . $this->dbconx . "]"; } /** * @brief return a string with a tag hidden and a uniq value * @param $hHidden is the name of the tag hidden * @return string : tag hidden */ function hidden() { $this->id=$this->dbconx->get_next_seq('uos_pk_seq'); return HtmlInput::hidden($this->name,$this->id); } /** * @brief Try to insert into the table Single_Record * @remark global $cn Database connexion * @throws Exception if the value $p_id is not unique */ function save($p_array=null) { if ( $p_array == null ) $p_array=$_POST; $this->id=$p_array[$this->name]; $sql="insert into tool_uos(uos_value) values ($1)"; try { $this->dbconx->exec_sql($sql,array($this->id)); } catch (Exception $e) { throw new Exception('Duplicate value'); } } /** * @brief Count how many time we have this->id into the table tool_uos * @remark global $cn Database connexion * @param $p_array is the array where to find the key name, usually it is * $_POST. The default value is $_POST * @return integer : 0 or 1 */ function get_count($p_array=null) { global $cn; if ( $p_array == null ) $p_array=$_POST; $this->id=$p_array[$this->name]; $count=$this->dbconx->get_value('select count(*) from tool_uos where uos_value=$1', array($this->id)); return $count; } function check ($p_array=null) { global $cn; if ( $p_array == null ) $p_array=$_POST; $this->id=$p_array[$this->name]; try { $count=$this->dbconx->get_value('select count(*) from tool_uos where uos_value=$1', array($this->id)); if ($count != 0 ) throw new Exception ('DUPLICATE',CODE_EXCP_DUPLICATE); }catch (Exception $e) { throw $e; } } } ?>