UPDATE MySQL không hoạt động

Code của em như sau:

if ((isset($_POST['submit-edit'])) || (isset($_POST['edit-id']))) {
        if ((empty($_POST['edit-task-new'])) || (empty($_POST['edit-id']))) {
            $errors = "Các vùng không được để trống!";
        }
        elseif (preg_match ('/[a-zA-Z0-9 ]/', strip_tags($_POST['edit-id']))){
            $edit_task = $_POST['edit-task-new'];
            $edit_id = $_POST['edit-id'];
            $tam = $_GET['edit-task'];
            $edit_query = "UPDATE tasks SET id='$edit_id',task='$edit_task' WHERE id='$tam'";
            mysqli_query($connect, $edit_query);
            header('location: edit.php');
    } else { $errors = "Không được chèn ký tự đặc biệt vào ID!"; }
}

Khi dùng câu lệnh UPDATE này thì không có gì xảy ra cả, em thử dùng lệnh trực tiếp trong MySQL thì bình thường.
Em cám ơn trước ạ!

Em tìm ra lỗi ở biến $tam, thử thay giá trị trực tiếp thay cho $tam thì thực hiện được

Chép mã nhanh hơn chụp màn hình nhé bạn. Vào đây xem cách định dạng mã: http://daynhauhoc.com/t/112


Dùng tên loạn xạ thế nhỉ?

$edit_task = $_POST["edit-task-new"];
$edit_id = $_POST["edit-id"];
$tam = $_POST["edit_task"];
$edit_query = "update tasks set id='$edit_id', task='$edit_task' where id='$tam'";

Trong $_POST, giá trị edit_taskid à?

Mình chưa hiểu ý định này!

4 Likes

dạ edit_task là id đúng rồi ạ, trước đó em dùng link để trỏ đến file này: edit.php?edit_task=…
còn edit-task-new, edit-id là name của input form ạ

À, bạn gán edit_task trên url ($_GET) mà lại lấy nó bằng $_POST.

3 Likes

biến $edit_task và edit_task là khác nhau phải không ạ?
nếu được bạn cho mình biết lỗi chỗ nào được không ạ (xin lỗi em là người mới)
P.S: hình như anh nhìn code của em lộn rồi ạ, trên hình em viết là $_GET

1 Like

khi em thay cái $tam bằng một giá trị cụ thể thì nó lại hoạt động

Bạn sửa một taskid sang một id mới và task mới. Sao lại phải sửa cả id nhỉ?

Bạn thử in (echo) giá trị $tam ra xem có đúng không.

3 Likes

Gía trị trong $tam là đúng bạn ạ

Thế thì thua.
Gán cứng thì chạy, dùng biến thì “tèo”.
Ơ, in ra cả $edit_query xem nó có khác gì với gán cứng không?

3 Likes

nó không tác dụng gì lên database cả ạ

print dòng $edit_query rồi dán vào mysql xem có chạy ko ?

4 Likes

Dùng

thì chỗ này

phải là

chứ nhỉ?

4 Likes

chà, cám ơn anh, chắc do em đặt tên biến tùm lum loạn xạ nên mới bị vậy, bây giờ thì em sửa lỗi được rồi, cám ơn tất cả mọi người đã giúp em nhé!

em xoá hết :grinning: code lại từ đầu và bây giờ code chạy ổn rồi ạ

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?