2011-05-20 81 views
-1

我需要幫助我的代碼如下。使用笨作爲我的框架,這個發展行記錄沒有在codeigniter中更新

查看

<table> 
         <tr> 
          <th>ID</th> 
          <th>Username</th> 
          <th>Email Address</th> 
          <th>Actions</th> 
         </tr> 
         <?php foreach($query as $row){?> 
         <tr> 
          <td><?php print $row->id; ?></td> 
          <td><?php print $row->username; ?></td> 
          <td><?php print $row->email; ?></td> 
          <td><?=anchor('userslist/get_Admin/'.$row->id, 'Edit');?>&nbsp;|&nbsp;<?=anchor('userslist/deleteAdmin/'.$row->id, 'Delete');?></td> 
         </tr> 
         <?php }?> 
        </table> 

控制器

 function get_Admin($id) 
    { 
     $data['query']=$this->usermodel->get_Admin($id); 
     $this->load->view('admin/users/edit-user-template',$data); 
    } 

視圖(更新表單)

<table> 
    <tr> 
     <th colspan="2">Update an Admin Account</th> 
    </tr> 
    <?php echo form_open('userslist/update_admin'); ?> 
    <tr> 
     <td>Username</td> 
     <td> 
     <?php 
      $data = array('name'=>'username', 'id'=>'username', 'class'=>'signup-txtbox', 'value'=>$query['username']); 
      echo form_input($data); 
     ?> 
     </td> 
    </tr> 
    <tr> 
     <td>Email</td> 
     <td> 
     <?php 
      $data = array('name'=>'email', 'id'=>'email', 'class'=>'signup-txtbox', 'value'=>$query['email']); 
      echo form_input($data); 
     ?> 
     </td> 
    </tr> 
    <tr> 
     <td>Password</td> 
     <td> 
     <?php 
      $data = array('name'=>'password', 'id'=>'password', 'class'=>'signup-txtbox', 'value'=>''); 
      echo form_input($data); 
     ?> 
     </td> 
    </tr> 
    <tr> 
     <td>Confirm Password</td> 
     <td> 
     <?php 
      $data = array('name'=>'password2', 'id'=>'password2', 'class'=>'signup-txtbox', 'value'=>''); 
      echo form_input($data); 
     ?> 
     </td> 
    </tr> 
    <tr> 
    <tr> 
     <td>&nbsp;</td> 
     <td> 
     <?php 
      $data = array('name'=>'submit', 'id'=>'submit', 'class'=>'signup-btn', 'value'=>'Update Acccount'); 
      echo form_submit($data); 
     ?> 
     </td> 
    </tr> 
    <tr> 
     <td colspan="2"><?php echo validation_errors('<p class="error">'); ?></td> 
    </tr> 
</table> 

控制器林

 function update_admin() 
     { 
      $this->usermodel->update_admin(); 
      redirect('userslist'); 

}

型號

 function update_admin() 
    { 
     $update_admin_data = array(
       'username' => $this->input->post('username'), 
       'email' => $this->input->post('email'), 
       'password ' => md5($this->input->post('password ')) 
      ); 
      $this->db->where('id',$id); 
      $update = $this->db->update('users', $update_admin_data); 
      return $update; 
    } 

整個代碼不更新所選記錄它只是碰巧,它只是重定向到該頁面沒有更新。可能的解決方案是什麼?

謝謝!

+0

你不能只是交一大堆代碼,並請求幫助。你能給我們提供一些具體的信息嗎? – neolaser 2011-05-20 05:57:04

+0

在你的模型中,$ id來自$ this-> db-> where('id',$ id)? – neolaser 2011-05-20 05:59:27

+0

它是從我的觀點來了...它是由一個超級鏈接 ​​<?=錨('userslist/get_Admin /'.$按行>的ID, '編輯')觸發;?>   |   <?= anchor('userslist/deleteAdmin /'.$ row-> id,'Delete');?> – nhoyti 2011-05-20 06:03:49

回答

2

你缺少$id屬性。更新的形式,你的第二個觀點提出:

<?php echo form_open('userslist/update_admin/'.$query['id']); ?> 

修復你的第二個控制器:

function update_admin($id) 
     { 
      $this->usermodel->update_admin($id); 
      redirect('userslist'); 
} 

最後,解決您的update_admin模型功能來啓動這樣的:

function update_admin($id) 
    { 
+0

立即獲知它!謝謝! – nhoyti 2011-05-20 07:33:33

0

我相信這是你的問題是

$this->db->where('id',$id); 

變量$id是不是你的模型函數中定義,爲此,當你嘗試做$this->db->where('id',$id);的$ id是不是一個變量,因此犯規發現任何東西。 ..從未更新。

如果$id是URI的一部分,這樣做:

$id = $this->uri->segment(3) //or whatever the segment is going to be 
+0

是的,我剛剛添加的URI函數來獲取特定的ID和參數,以獲得更新完成,但沒有任何變化 – nhoyti 2011-05-20 06:45:47

+0

功能update_admin() \t \t { \t \t \t $ update_admin_data =陣列( \t \t \t \t \t '用戶名'=> $這個 - >輸入 - >交的( '用戶名'), \t \t \t \t \t '電子郵件'=> $這個 - >輸入 - >柱( 'email'), \t \t \t \t \t '密碼'=> MD5($這 - >輸入 - >柱( '密碼')) \t \t \t \t); \t \t \t \t $ id = $ this-> uri-> segment(3,0); \t \t \t \t $ this-> db-> where('id',$ id); \t \t \t \t $ update = $ this-> db-> update('users',$ update_admin_data); \t \t \t \t return $ update; \t \t} – nhoyti 2011-05-20 06:47:19

+0

你可以檢查$ this-> uri-> segment(3,0)的值是否爲 – neolaser 2011-05-20 06:51:45