Удалить изображения -> codeigniter - PullRequest
2 голосов
/ 14 апреля 2011

Я перефразировал мой вопрос, чтобы помочь получить конкретный ответ, извините, если мой последний вопрос сбивал с толку:

У меня есть проблема с попыткой удалить строку из базы данных, но также указано, как отсоединитьизображения из разных мест.Я не могу получить строку для удаления или изображения, чтобы удалить связь.

Вот моя структура -> дБ

Мои изображения:

fullpath = /includes/uploads/gallery/

thumbpath = /includes/uploads/gallery/thumbs/

Идеальная ситуация:

Моя идеальная ситуация была бы, если щелкнуть ссылку удаления, чтобы она запустила функцию в функции индекса и затем перезагрузила ту же страницу с сообщением об успехе -> Я не смог заставить их работать.

Мой код:

Модель:

function deleteImage($id,$path){

        $this->db->delete('images', array('id' => $id));

        if($this->db->affected_rows() >= 1) {
            if(unlink($path)
                return TRUE;
            } else{
                return FALSE;
            }
        }    

Вид:

    <?php if(is_array($get_images)): ?>

            <?php foreach($get_images as $image): ?>
            <img src ="<?=base_url()?>includes/uploads/gallery/thumbs/<?=$image->thumbpath?>" alt="<?= $image->description?>"> <a href="deleteimage/delete/<?=$image->id?>">Delete</a>
            <?php endforeach; ?>
    <?php endif; ?>

Контроллер:

   function index() { 
    if(!$this->session->userdata('logged_in')) { 
        redirect('admin/home'); 
    } 
    // Main Page Data 
    $page['get_images'] = $this->image_model->getImages();
    $data['cms_pages'] = $this->navigation_model->getCMSPages();
    $data['title'] = 'Delete Gallery Image'; 
    $data['content'] = $this->load->view('admin/deleteimage',$page,TRUE); 

    $this->load->view('admintemplate', $data);

}

Ответы [ 3 ]

2 голосов
/ 15 апреля 2011

Что вы ищете, если используете активную запись:

$ this-> db-> delete ();

Теперь из памяти это вернет false только еслипроизошла ошибка, поэтому будет постоянно возвращать истину.Но это нормально, мы можем использовать другую функцию, чтобы проверить, была ли удалена строка.

О, и вы также захотите передать в функцию путь к файлу, который вы хотите удалить.


function deleteImage($id,$path) {

$this->db->delete('table', array('id' => $id));

    if($this->db->affected_rows() >= 1){
        if(unlink($path))
        return TRUE;
    } else {
        return FALSE;
    }

}

2 голосов
/ 07 июня 2012
function delete_data($record_id)
{
    $query =  $this->db->get_where('projukti_committee',array('record_id' => $record_id));
    if( $query->num_rows() > 0 )
    {
        $row = $query->row();
        $picture = $row->picture;
        unlink(realpath('assets/photo/'.$picture));
        $this->db->delete('projukti_committee', array('record_id' => $record_id));
        return true;
    }
    return false;   
} 
1 голос
/ 14 апреля 2011

Предположительно, у вас есть какой-либо идентификатор изображения.

Добавьте идентификатор к deleteimage/delete URI.

Создайте метод, который удаляет идентификатор из вашей таблицы, и используйте функцию PHP unlink($path) для фактического удаления изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...