簡體   English   中英

Codeigniter更新查詢問題

[英]Codeigniter Update query issue

我正在制作一個學生管理系統,我想更新記錄,所有代碼都可以正常工作,但更新操作也未完成,下拉菜單,單選按鈕之類的所有選擇元素都未作為數據庫中的數據進行檢查。

控制器代碼:

//code to edit student record.
public function edit($stu_id){
$this->load->model('model_editstudent');
$data['r']=$this->model_editstudent ->get_student_row($stu_id);
$this->load->view('view_editstudent', $data);
}

#update query.
function update(){
    $stu_id=$this->input->post('stu_id');
    $data=array(
        'name'=>$this->input->post('name'),
        'address'=>$this->input->post('address'),
        'sex'=>$this->input->post('sex'),
        'yop'=>$this->input->post('yop'),
        'interest'=>$this->input->post('interest'));
    $this->db->where('stu_id',$stu_id);
    $this->db->update('stu_record',$data);
    redirect('Student_Controller/');
}

型號代碼:

    <?php
    if ( ! defined('BASEPATH')) exit('No direct script access allowed');

    class Model_EditStudent extends CI_Model{

    function get_student_row($stu_id){
    $this->db->where('stu_id',$stu_id);
    $query=$this->db->get('stu_record');
    #will return only one record(row)
    return $query->row();
    }
}

查看代碼:

    <form method="POST" action='<?php echo site_url("student_controller/update"); ?>'>
<b>Student ID:</b><br>
<input type="text" Name="name" readonly value="<?php echo $r->stu_id ?>"><br><br>
<b>Name of the Student:</b><br>
<input type="text" Name="name" value="<?php echo $r->name ?>"><br><br>
<b>Address:</b><br>
<textarea name="address" rows="5" cols="22" ><?php echo $r->address ?></textarea><br><br>
<b>Gender:</b><br>
<input type="radio" name="sex" value="<?php if($r->sex=='Male') ?>">Male<br>
<input type="radio" name="sex" value="<?php if($r->sex=='Female') ?>">Female<br><br>
<b>Expected Year of Passing:</b><br>
<select name="yop" value="<?php echo $r->yop ?>">
<option value="0">Select Year</option>
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
</select><br><br>
<b>Extra Curricular Interests:</b><br>
<input type="checkbox" name="interest" value="Sports"><label>Sports</label><br/>
<input type="checkbox" name="interest" value="Programming"><label>Programming</label><br/>
<input type="checkbox" name="interest" value="Arts"><label>Arts</label><br/>
<input type="checkbox" name="interest" value="Music"><label>Music</label><br/>
<br><input type="submit" value="Update"> &nbsp 
<a href='<?php echo site_url('student_controller/'); ?>'>Cancel</a>
</form>

您選擇要進行的第一件事

<select name="yop">
<option value="0">Select Year</option>
<option value="2010" <?php if($r->yop=="2010"){echo "selected=selected";}?>>2010</option>
<option value="2011" <?php if($r->yop=="2011"){echo "selected=selected";}?>>2011</option>
<option value="2012" <?php if($r->yop=="2012"){echo "selected=selected";}?>>2012</option>
<option value="2013" <?php if($r->yop=="2013"){echo "selected=selected";}?>>2013</option>
<option value="2014" <?php if($r->yop=="2014"){echo "selected=selected";}?>>2014</option>
<option value="2015" <?php if($r->yop=="2015"){echo "selected=selected";}?>>2015</option>
</select>

單選按鈕

<input type="radio" name="sex" value="Male" <?php if($r->sex=='Male') echo "checked";?>">Male<br>
<input type="radio" name="sex" value="Female" <?php if($r->sex=='Female') echo "checked"; ?>">Female<br><br>

關於您的單選按鈕,您的if到底在哪里? 您測試性別是男性還是女性,但此后沒有任何反應。

if($r->sex=='Male')

另外,我不記得是否大寫,但是您只使用了一次'student_controller'和一次'Student_Controller'。 您收到任何錯誤消息了嗎? 您是否加載了數據庫...(只是在問,因為我們沒有所有代碼,所以我只是假設最壞的情況)。 您應該嘗試知道表單在發送后是否達到更新功能。 我的更新功能中的愚蠢回聲可能會做到這一點...

我建議您也使用“ form_validation”庫,以便檢查來自帖子數據的數據並進行清理。

就像是 :

$this->load->library('form_validation');

$this->form_validation->set_rules('name', '"Name of the Student"', 'trim|required|min_length[3]|max_length[22]|alpha_dash|encode_php_tags|xss_clean');
// And you need to apply set_rules to each of your post data, like 'adress', 'sex', etc.

if($this->form_validation->run()):
  // Here goes your code, with the update query
endif;
redirect('Student_Controller/');

我不知道這是否對您有幫助,但我希望如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM