【问题标题】:uploading photo codeigniter not inserting into the right column上传照片codeigniter未插入右列
【发布时间】:2016-03-30 17:01:22
【问题描述】:

我设法将上传的照片插入到数据库以及指定的路径中,问题是我上传的照片没有插入到日志用户列,而是创建了另一个列,我错过了什么吗?下面是我的代码和截图,以防你们几乎不明白我的意思

型号

function create($data){
    $query = $this->db->insert('dosen', $data);
    return $query;
}

控制器

public function Upload(){
    $upload = $this->input->post('fotoDsn');
    //Foto Set
    $photoName = gmdate("d-m-y-H-i-s", time()+3600*7).".jpg";
    $config['upload_path'] = './assets/';
    $config['allowed_types'] = 'gif||jpg||png';
    $config['max_size'] = '2048000';
    $config['file_name'] = $photoName;
    $this->load->library('upload',$config);
    if($this->upload->do_upload('userfile')){           
        $upload = 1;
    }
    else{
        $upload = 2;
    }
    if($upload==1){
        $data   = array(
                'foto_dosen'=>$photoName);
        $insert = $this->MDosen->create($data);
        if($insert){
            echo 1;
        }else{
            echo 2;
        }
    }//else kalo gagal
}

查看

<a href="#modalUpload" class="upload waves-effect waves-light modal-trigger" id="<?php echo $result->id ?>"><i class="material-icons tiny">assignment_ind</i>&nbsp;Upload</a>    

<div id="modalUpload" class="modal" style="width: 40%; height: auto">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
             <i class="medium material-icons prefix">assignment_ind</i>
                <h4 class="modal-title"> Upload Foto</h4>
            </div>
            <div class="modal-body">
                <form action="upload" id="tambahFormUpload" method="post" enctype="multipart/form-data">
                    <div class="file-field input-field">
                        <div class="btn">
                            <span>File</span>
                            <input type="file" name="userfile">
                        </div>
                        <div class="file-path-wrapper">
                            <input class="file-path validate" type="text">
                        </div>
                    </div>
                    <div class="modal-footer">
                        <button type="submit" class="btn btn-primary" >Simpan</button>
                    </div>  
                </form>
            </div>
        </div>  
    </div>
</div>

JS

$('.upload').click(function(){
        id1 = $(this).attr('id');
    });
    $('#tambahFormUpload').submit(function(e){
        alert(id1);
        e.preventDefault();
        var formData = new FormData($(this)[0]);
        $.ajax({
            url:'Profil/Upload/'+id1,
            data:formData,
            type:'POST',
            contentType: false,
            processData: false,
            success:function(data){
                $("#modalUpload").hide();
                window.location.reload(true);
            }
        });
    });

【问题讨论】:

  • 你想让它把 url 插入现有的列吗?还是您的问题是它没有向新插入的行添加其他用户详细信息?
  • 是到现有列中,所以我使用用户“ragil”登录,上传照片应插入“ragil”“photo_dosen”列,但这样做会创建另一行
  • 我不熟悉 codeigniter,但听起来你想要一个 -&gt;update() 而不是 -&gt;insert(),例如 stackoverflow.com/a/13895507/689579
  • 我也是这么想的,但问题是,如果里面已经有数据了,那更新不就用了吗?
  • 当您想要更改/更改向现有行添加值时使用更新。因此,如果您想为user ="ragil" 所在的行添加( 更改/更改)photo_dosen 列值,则需要进行更新。结果查询将是UPDATE ragil SET photo_dosen = "$photoName" WHERE user ="ragil"。我不知道使用 codeigniter 语法会是什么样子。

标签: php jquery mysql codeigniter


【解决方案1】:

根据@Sean 的评论,确实我们应该使用update,而不是使用insert,所以正确的控制器看起来像这样,使用update 模型而不是create 并将参数放在我的函数上,第二个原因是它没有插入正确的列,因为找不到用户的 id(where 子句),所以使用update 我们可以设置where 子句并将其指向userid,希望对您有所帮助

控制器

public function Upload($id){
    $upload = $this->input->post('fotoDsn');
    //Foto Set
    $photoName = gmdate("d-m-y-H-i-s", time()+3600*7).".jpg";
    $config['upload_path'] = './assets/';
    $config['allowed_types'] = 'gif||jpg||png';
    $config['max_size'] = '2048000';
    $config['file_name'] = $photoName;
    $this->load->library('upload',$config);
    if($this->upload->do_upload('userfile')){           
        $upload = 1;
    }
    else{
        $upload = 2;
    }
    if($upload==1){
        $data   = array(
                'foto_dosen'=>$photoName);
        $update = $this->MDosen->update(array('id'=>$id),  $data);
        if($update){
            echo 1;
        }else{
            echo 2;
        }
    }//else kalo gagal
}

型号

function update($cond, $data){
    $this->db->where($cond);
    $query = $this->db->update('dosen', $data);
    return $query;
}

【讨论】:

    猜你喜欢
    • 2010-11-13
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 2021-06-30
    • 2018-01-02
    相关资源
    最近更新 更多