<?php
 
/**
 
* Description:  This is a class for member.
 
* Author:               Joken Villanueva
 
* Date Created: Nov. 2, 2013
 
* Revised By:           
 
*/
 
require_once(LIB_PATH.DS.'database.php');
 
class member {
 
        
 
        protected static $tbl_name = "user_info";
 
        function db_fields(){
 
                global $mydb;
 
                return $mydb->getFieldsOnOneTable(self::$tbl_name);
 
        }
 
        function listOfautonumber(){
 
                global $mydb;
 
                $mydb->setQuery("Select * from ".self::$tbl_name);
 
                $cur = $mydb->loadResultList();
 
                return $cur;
 
        
 
        }
 
        static function bPrimary($id=0){
 
                global $mydb;
 
                $mydb->setQuery("SELECT * FROM ".self::$tbl_name." WHERE auto_id={$id} LIMIT 1");
 
                $row = $mydb->loadSingleResult();
 
                $s = $row->autostart + $row->incval;
 
                $a = $row->appenchar;
 
                return $a.$s;
 
        }       
 
        static function bPrimaryUpdate($id=0){
 
                global $mydb;
 
                $mydb->setQuery("SELECT * FROM ".self::$tbl_name." WHERE auto_id={$id} LIMIT 1");
 
                $row = $mydb->loadSingleResult();
 
                $s = $row->autostart + $row->incval;
 
                        
 
                return $s;
 
        }               
 
        /*---Instantiation of Object dynamically---*/
 
        static function instantiate($record) {
 
                $object = new self;
 
 
 
                foreach($record as $attribute=>$value){
 
                  if($object->has_attribute($attribute)) {
 
                    $object->$attribute = $value;
 
                  }
 
                } 
 
                return $object;
 
        }
 
        
 
        
 
        /*--Cleaning the raw data before submitting to Database--*/
 
        private function has_attribute($attribute) {
 
          // We don't care about the value, we just want to know if the key exists
 
          // Will return true or false
 
        }
 
 
 
        protected function attributes() { 
 
                // return an array of attribute names and their values
 
          global $mydb;
 
          foreach($this->db_fields() as $field) {
 
            if(property_exists($this, $field)) {
 
                        $attributes[$field] = $this->$field;
 
                }
 
          }
 
          return $attributes;
 
        }
 
        
 
        protected function sanitized_attributes() {
 
          global $mydb;
 
          $clean_attributes = array();  
          // sanitize the values before submitting
 
          // Note: does not alter the actual value of each attribute
 
          foreach($this->attributes() as $key => $value){
 
            $clean_attributes[$key] = $mydb->escape_value($value);
 
          }
 
          return $clean_attributes;
 
        }
 
        
 
        
 
        /*--Create,Update and Delete methods--*/
 
        public function save() {
 
          // A new record won't have an id yet.
 
          return isset($this->id) ? 
$this->update() : $this->create();  
        }
 
        
 
        public function create() {
 
                global $mydb;
 
                // Don't forget your SQL syntax and good habits:
 
                // - INSERT INTO table (key, key) VALUES ('value', 'value')
 
                // - single-quotes around all values
 
                // - escape all values to prevent SQL injection
 
                $attributes = $this->sanitized_attributes();
 
                $sql = "INSERT INTO ".self::$tbl_name." (";
 
                $sql .= ") VALUES ('";
 
                $sql .= "')";
 
        echo $mydb->setQuery($sql);
 
        
 
         if($mydb->executeQuery()) {
 
            $this->id = $mydb->insert_id();
 
            return true;
 
          } else {
 
            return false;
 
          }
 
        }
 
 
 
        public function update($id=0) {
 
          global $mydb;
 
                $attributes = $this->sanitized_attributes();
 
                $attribute_pairs = array();  
                foreach($attributes as $key => $value) {
 
                  $attribute_pairs[] = "{$key}='{$value}'";
 
                }
 
                $sql = "UPDATE ".self::$tbl_name." SET ";
 
                $sql .= join(", ", $attribute_pairs);  
                $sql .= " WHERE auto_id=". $id;
 
          $mydb->setQuery($sql);
 
                if(!$mydb->executeQuery()) return false;        
 
                
 
        }
 
 
 
        public function delete($id=0) {
 
                global $mydb;
 
                  $sql = "DELETE FROM ".self::$tbl_name;
 
                  $sql .= " WHERE auto_id=". $id;
 
                  $sql .= " LIMIT 1 ";
 
                  $mydb->setQuery($sql);
 
                  
 
                        if(!$mydb->executeQuery()) return false;        
 
        
 
        }
 
                
 
}
 
?>