mysql - dynamic fetch data function -
i have made simple database application in zend framework.in have made user class , defined different function database interaction.this function called controller class..but have declare each time class object calling method of user class in each action.how can declare user class object 1 time , use in action method of controller. here controller page class usercontroller extends zend_controller_action {
public function init() { /* initialize action controller here */ zend_session::start(); } public function indexaction() { $title = zend_registry::get('title'); $this->view->assign('name', 'wiwit'); $this->view->assign('title', $title); } public function logoutaction() { zend_session::destroy(); $this->redirect("/user/login"); } public function registeraction() { $this->view->assign('title','register'); $request = $this->getrequest(); $this->view->assign('action', $request->getbaseurl()."/user/register"); if($request->ispost()) { $data = array('first_name' => $request->getparam('first_name'), 'last_name' => $request->getparam('last_name'), 'user_name' => $request->getparam('user_name'), 'password' => $request->getparam('password') ); $user = new application_model_user(); $rows_affected=$user->user_insert($data); $this->redirect("/user/login"); } } public function loginaction() { if(isset($_session['username'])) { $this->redirect("/user/home"); } $this->view->assign('title','register'); $request = $this->getrequest(); $this->view->assign('action', $request->getbaseurl()."/user/login"); if($request->getparam('msg')) { $this->view->msg='username or password invalid'; } if($request->ispost()) { $data = array( 'user_name' => $request->getparam('user_name'), 'password' => $request->getparam('password') ); $user = new application_model_user(); $result=$user->user_login($data); if(empty($result)){ $this->redirect("/user/login/msg/login failed"); } else{ $_session['username']=$result->user_name; $this->redirect("/user/home"); } } } public function homeaction() { if(isset($_session['username'])) { $this->view->title='home'; $request = $this->getrequest(); $user = new application_model_user(); $result=$user->user_grid(); $this->view->rows=$result; } else { $this->redirect("/user/login"); } } public function editaction() { $request = $this->getrequest(); $id= $request->getparam("id"); $user = new application_model_user(); $result=$user->user_edit($id); $this->view->assign('data',$result); $this->view->action= $request->getbaseurl()."/user/update"; } } , here user class <?php class application_model_user extends zend_db_table { public function user_insert($data) { global $db; $rows_affected = $db->insert('user', $data); return $rows_affected; } public function user_login($data) { $u_name=array_shift($data); $pass=array_shift($data); $select = $this->_db->select() ->from('user') ->where("user_name = ?",$u_name) ->where("password = ?",$pass); $result = $this->getadapter()->fetchrow($select); return $result; } public function user_grid() { global $db; $sql = 'select * user'; $stmt = $db->query($sql); $result = $stmt->fetchall(); return $result; } public function user_edit($data) { $select = $this->_db->select() ->from('user') ->where("id = ?",$data); $result = $this->getadapter()->fetchrow($select); $data = (array) $result; return $data; } public function userupdate($data,$id) { global $db; $rows_affected =$db->update('user', $data,'id = '.$id); return $rows_affected; } public function userdelete($id) { global $db; $rows_affected =$db->delete('user','id = '.$id); return $rows_affected; } } ?>
you can create user object in init() method, , store class variable.
public function init() { /* initialize action controller here */ zend_session::start(); $this->user = new application_model_user(); } then it's available in action method.
public function homeaction() { if(isset($_session['username'])) { $this->view->title='home'; $request = $this->getrequest(); $result = $this->user->user_grid(); // changed $this->view->rows=$result; } else { $this->redirect("/user/login"); } }
Comments
Post a Comment