Thứ Năm, 23 tháng 6, 2016

Phần 68 - Làm phần xử lý sửa banner


- Tiếp theo là làm tiếp phần sửa banner ở trong bảng 'banner'.Bạn tạo file 'sua_banner_o_trong_csdl.php' trong thư mục 'banner' với nội dung sau :


<?php
    if(!isset($bien_bao_mat)){exit();}
    $rong=$_POST['rong'];
    $cao=$_POST['cao'];
    $ten_file_anh_tai_len=$_FILES['hinh_anh']['name'];
    if($ten_file_anh_tai_len!="")
    {
        $ten_file_anh=$ten_file_anh_tai_len;
    }
    else
    {
        $ten_file_anh=$_POST['ten_anh'];
    }
    if($ten_file_anh_tai_len!="")
    {   
        $duong_dan_anh_cu="../hinh_anh/banner/".$_POST['ten_anh'];
        unlink($duong_dan_anh_cu);
        $duong_dan_anh="../hinh_anh/banner/".$ten_file_anh_tai_len;
        move_uploaded_file($_FILES['hinh_anh']['tmp_name'],$duong_dan_anh);       
    }

    $tv="
    UPDATE banner SET
    hinh = '$ten_file_anh',
    rong = '$rong',
    cao = '$cao'
    WHERE id= 1;
    ";
    mysql_query($tv);           

?>


- Bạn xem giải thích code (phần chữ xanh) của file 'sua_banner_o_trong_csdl.php' ở phần bên dưới :


<?php
    if(!isset($bien_bao_mat)){exit();} // xuất ra trang trắng nếu truy cập trực tiếp vào file này
    $rong=$_POST['rong']; // lấy chiều rộng banner rồi gán vào biến $rong
    $cao=$_POST['cao']; // lấy chiều cao banner rồi gán vào biến $cao
    $ten_file_anh_tai_len=$_FILES['hinh_anh']['name']; // lấy tên file ảnh tải lên
    if($ten_file_anh_tai_len!="") // trường hợp tên file ảnh tải lên khác rỗng
    {
        $ten_file_anh=$ten_file_anh_tai_len;
        // trường hợp tên file ảnh tải lên khác rỗng thì tên file ảnh sửa vào csdl sẽ là tên file ảnh tải lên ( $ten_file_anh_tai_len ) 
    }
    else
    {
        $ten_file_anh=$_POST['ten_anh'];
        // trường hợp tên file ảnh tải lên bằng rỗng thì tên file ảnh sửa vào csdl sẽ là tên file ảnh nằm trong thẻ input ẩn ( type="hidden" )  
    }
    if($ten_file_anh_tai_len!="") // trường hợp có tải ảnh
    {   
        $duong_dan_anh_cu="../hinh_anh/banner/".$_POST['ten_anh'];
        // tạo đường dẫn ảnh cũ (ảnh cũ nằm trong thư mục 'hinh_anh/banner' , cách ghi ../ là lùi về 1 thư mục )
        unlink($duong_dan_anh_cu);
        // xóa ảnh cũ
        $duong_dan_anh="../hinh_anh/banner/".$ten_file_anh_tai_len;
        // tạo đường dẫn ảnh tải lên (ảnh tải lên trong thư mục 'hinh_anh/banner' , cách ghi ../ là lùi về 1 thư mục )
        move_uploaded_file($_FILES['hinh_anh']['tmp_name'],$duong_dan_anh);      
        // thực hiện tải ảnh bằng hàm move_uploaded_file , ảnh sẽ được tải từ thẻ input có name là 'hinh_anh'
    }

    $tv="
    UPDATE banner SET   // câu truy vấn sửa dữ liệu thì dùng lệnh update , bảng banner sẽ được cập nhật dữ liệu
    hinh = '$ten_file_anh', // cột 'hinh' sẽ được cập nhật lại với nội dung là của biến $ten_file_anh
    rong = '$rong', // cột 'rong' sẽ được cập nhật lại với nội dung là của biến $rong
    cao = '$cao'  // cột 'cao' sẽ được cập nhật lại với nội dung là của biến $cao
    WHERE id= 1;
    // dòng dữ liệu cập nhật sẽ là dòng mà cột 'id' của dòng đó có giá trị là 1
    ";
    mysql_query($tv);  // gửi câu truy vấn vào mysql bằng lệnh mysql_query          

?>


- Sau đó mình sửa banner thì đã thấy đã sửa được , kết quả mình nhận được :


- Khi bạn thực hiện gửi biểu mẫu sửa banner thì web sẽ chạy file 'xu_ly_post_get.php' , lúc này sẽ tồn tại biến $_POST['bieu_mau_sua_banner'] , từ đó file 'xu_ly_post_get.php' sẽ gọi file  'sua_banner_o_trong_csdl.php' ( để xử lý sửa dữ liệu banner ) bằng đoạn code sau :

if(isset($_POST['bieu_mau_sua_banner']))
{
    include("chuc_nang/banner/sua_banner_o_trong_csdl.php");
    trang_truoc_html();
}

- File 'sua_banner_o_trong_csdl.php' sẽ thực hiện sửa dữ liệu trong bảng 'banner' bằng lệnh update