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

Phần 62 - Làm phần xử lý thêm slideshow

- Tiếp theo là làm tiếp phần thêm slideshow vào bảng 'slideshow'.Bạn tạo file 'them_slideshow_vao_csdl.php' trong thư mục 'slideshow' với nội dung sau : 


<?php
    if(!isset($bien_bao_mat)){exit();}
?>
<?php
    $lien_ket=trim($_POST['lien_ket']);
    $ten_file_anh=$_FILES['hinh_anh']['name'];

    if($ten_file_anh!="")
    {
        $tv_k="select count(*) from slideshow where hinh='$ten_file_anh' ";
        $tv_k_1=mysql_query($tv_k);
        $tv_k_2=mysql_fetch_array($tv_k_1);
        if($tv_k_2[0]==0)
        {
            $tv="
            INSERT INTO slideshow (
            id ,
            hinh,
            lien_ket
            )
            VALUES (
            NULL ,
            '$ten_file_anh',
            '$lien_ket'
            );";
            mysql_query($tv);

            $duong_dan_anh="../hinh_anh/slideshow/".$ten_file_anh;
            move_uploaded_file($_FILES['hinh_anh']['tmp_name'],$duong_dan_anh);
        }
        else
        {
            thong_bao_html("Hình ảnh bị trùng tên");
        }
    }
    else
    {
        thong_bao_html("Chưa chọn ảnh");
    }

?>


- Bạn xem giải thích code (phần chữ xanh) của file 'them_slideshow_vao_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
?>
<?php
    $lien_ket=trim($_POST['lien_ket']);
    // lấy liên kết của ảnh slideshow rồi gán vào biến $lien_ket và loại bỏ khoảng trống ở 2 bên trái phải của tên sản phẩm

    $ten_file_anh=$_FILES['hinh_anh']['name']; // lấy tên file ảnh từ thẻ input có name là 'hinh_anh' rồi gán vào biến $ten_file_anh

    if($ten_file_anh!="") // chỉ thêm slideshow khi có tải ảnh
    {
        $tv_k="select count(*) from slideshow where hinh='$ten_file_anh' ";
        // chuỗi truy vấn này dùng để xác định hình ảnh tải lên có bị trùng lặp tên hay không ( where hinh='$ten_file_anh'  )
        // trường hợp tên ảnh không trùng thì ô đầu tiên của dòng dữ liệu trả về sẽ có giá trị 0
        $tv_k_1=mysql_query($tv_k);
        $tv_k_2=mysql_fetch_array($tv_k_1);
        if($tv_k_2[0]==0) // chỉ thêm ảnh slideshow khi tên ảnh tải lên không bị trùng lặp với các tên ảnh slideshow cũ
        {
            $tv="
            INSERT INTO slideshow ( // câu truy vấn thêm dữ liệu thì dùng lệnh insert into , bảng slideshow sẽ được thêm dữ liệu
            id , // tên cột 'id' trong bảng 'slideshow'
            hinh, // tên cột 'hinh' trong bảng 'slideshow'
            lien_ket // tên cột 'lien_ket' trong bảng 'slideshow'
            )
            VALUES (
            NULL , // id sẽ được tăng tự động
            '$ten_file_anh', // gán biến $ten_file_anh vào cột 'hinh'
            '$lien_ket' , // gán biến $lien_ket vào cột 'lien_ket'
            );";
            mysql_query($tv); // gửi câu truy vấn vào mysql bằng lệnh mysql_query

            $duong_dan_anh="../hinh_anh/slideshow/".$ten_file_anh;
            // tạo liên kết để tải ảnh
            // thư mục chứa ảnh là 'hinh_anh/slideshow' (viết ../ 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'
        }
        else
        {
            thong_bao_html("Hình ảnh bị trùng tên");
            // nếu ảnh trùng tên thì xuất ra thông báo "Hình ảnh bị trùng tên"
        }
    }
    else
    {
        thong_bao_html("Chưa chọn ảnh");
        // nếu chưa chọn ảnh thì xuất ra thông báo "Chưa chọn ảnh"
    }

?>


- Sau đó mình thêm ảnh slideshow thì đã thấy đã thêm được sản phẩm , kết quả mình nhận được :



- Khi mình không tải ảnh slideshow thì sẽ nhận được thông báo "Chưa chọn ảnh".Khi ảnh tải lên trùng tên với ảnh cũ thì sẽ nhận được thông báo "Hình ảnh bị trùng tên"

- Khi bạn thực hiện gửi biểu mẫu thêm slideshow 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_them_slideshow'] , từ đó file 'xu_ly_post_get.php' sẽ gọi file  'them_slideshow_vao_csdl.php' ( để xử lý thêm ảnh slideshow ) bằng đoạn code sau :

if(isset($_POST['bieu_mau_them_slideshow']))
{
    include("chuc_nang/slideshow/them_slideshow_vao_csdl.php");
    trang_truoc_html();
}

- File 'them_slideshow_vao_csdl.php' sẽ thực hiện thêm dữ liệu vào bảng 'slideshow' bằng lệnh insert