<?php if(!isset($bien_bao_mat)){exit();} $id=$_GET['id']; $lien_ket=trim($_POST['lien_ket']); $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']; } $kiem_tra_anh="hop_le"; if($ten_file_anh_tai_len!="") { $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) { $kiem_tra_anh="khong_hop_le"; } } if($kiem_tra_anh=="hop_le") { if($ten_file_anh_tai_len!="") { $duong_dan_anh="../hinh_anh/slideshow/".$ten_file_anh_tai_len; move_uploaded_file($_FILES['hinh_anh']['tmp_name'],$duong_dan_anh); $duong_dan_anh_cu="../hinh_anh/slideshow/".$_POST['ten_anh']; unlink($duong_dan_anh_cu); } $tv=" UPDATE slideshow SET hinh = '$ten_file_anh', lien_ket = '$lien_ket' WHERE id =$id; "; mysql_query($tv); } else { thong_bao_html("Hình ảnh bị trùng tên"); } ?> |
- Bạn xem giải thích code (phần chữ xanh) của file sua_slideshow_o_trong_csdl.php' ở phần bên dưới :
<?php // dùng $_POST để lấy giá trị của biểu mẫu sửa slideshow được gửi 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 $id=$_GET['id']; // lấy biến 'id' trên url (cũng là id slideshow cần sửa) $lien_ket=trim($_POST['lien_ket']); // lấy liên kết slideshow 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 liên kết slideshow $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" ) } $kiem_tra_anh="hop_le"; // ban đầu ảnh tải lên sẽ được cho là hợp lệ bằng cách gán biến $kiem_tra_anh có giá trị là 'hop_le' // ảnh không hợp lệ là khi ảnh tải lên bị trùng tên ảnh cũ , khi đó biến $kiem_tra_anh có giá trị là 'khong_hop_le' // phần code phía dưới sẽ kiểm tra ảnh có hợp lệ hay không if($ten_file_anh_tai_len!="") // trường hợp có tải ảnh (biến $ten_file_anh_tai_len khác rỗng) { $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) // trường hợp tải ảnh trùng tên (ô đầu tiên của dòng dữ liệu trả về có giá trị khác 0) // trường hợp này là tải ảnh không hợp lệ { $kiem_tra_anh="khong_hop_le"; // do tải ảnh không hợp lệ (trùng tên) nên biến $kiem_tra_anh được gán giá trị là 'khong_hop_le' } } if($kiem_tra_anh=="hop_le") // trường hợp ảnh tải lên hợp lệ { if($ten_file_anh_tai_len!="") // trường hợp có tải ảnh (biến $ten_file_anh_tai_len khác rỗng) // trường hợp này thì tải ảnh và xóa ảnh cũ { $duong_dan_anh="../hinh_anh/slideshow/".$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/slideshow' , 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' $duong_dan_anh_cu="../hinh_anh/slideshow/".$_POST['ten_anh']; // tạo đường dẫn ảnh cũ unlink($duong_dan_anh_cu); // xóa ảnh cũ } $tv=" UPDATE slideshow SET // câu truy vấn sửa dữ liệu thì dùng lệnh update , bảng slideshow 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 lien_ket = '$lien_ket' // cột 'lien_ket' sẽ được cập nhật lại với nội dung là của biến $lien_ket WHERE id =$id; // 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à biến 'id' trên url (tức là id của slideshow đang được sửa) "; mysql_query($tv); // gửi câu truy vấn vào mysql bằng lệnh mysql_query } 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" } ?> |
- Sau đó mình sửa ảnh slideshow (sửa thành "Ảnh quảng cáo 6" ) thì đã thấy đã sửa được , kết quả mình nhận được :
- Khi mình tải ảnh trùng tên ả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 sửa 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_sua_slideshow'] , từ đó file 'xu_ly_post_get.php' sẽ gọi file 'sua_sllideshow_o_trong_csdl.php' ( để xử lý sửa dữ liệu sản phẩm ) bằng đoạn code sau :
if(isset($_POST['bieu_mau_sua_slideshow'])) { include("chuc_nang/slideshow/sua_slideshow_o_trong_csdl.php"); trang_truoc_html(); } |
- File 'sua_slideshow_o_trong_csdl.php' sẽ thực hiện sửa dữ liệu trong bảng 'slideshow' bằng lệnh update