Hướng dẫn how to edit data from database in php using button - làm thế nào để chỉnh sửa dữ liệu từ cơ sở dữ liệu trong php bằng cách sử dụng nút
Tôi muốn tạo một nút, bạn biết như nút HTML cơ bản nhưng tôi muốn nó ở mọi đầu của hàng trong bảng của tôi. Tôi muốn nó có thể khi nhấp vào để xóa hàng trong cơ sở dữ liệu của mình hoặc chỉnh sửa chúng Show
Tôi là một người mới, hãy nhớ rằng ... đó là lý do tại sao tôi gọi trợ giúp Đây là mã của tôi exempel.php:
insert.php
index.php
Nếu bạn thử exempel.php, tôi muốn một số nút/s có thể chỉnh sửa hoặc xóa hàng đó Chỉ để tất cả các bạn biết, tôi đã chỉnh sửa một số văn bản và tên trong mã để làm cho nó có thể đọc được cho các bạn, nếu không thì nó bằng tiếng Thụy Điển. Có lẽ tôi đã quên chỉnh sửa một hoặc nhiều tên
Trong bài học này, bạn sẽ mở rộng chức năng của ứng dụng với hai tính năng:
Để thực hiện các tính năng này, bạn chỉnh sửa các tệp 6 và 7. Bạn cũng tạo một tệp mới có tên 8.Tài liệu hiện tại là một phần của việc tạo ứng dụng CRUD trong IDE Netbeans cho hướng dẫn PHP. Mã nguồn ứng dụng từ bài học trướcChỉnh sửa một điều ước Thực hiện nút Chỉnh sửa Chỉnh sửa một điều ướcThực hiện nút Chỉnh sửa
Xóa một điều ước
Thực hiện nút Chỉnh sửaMở rộng mảng 5
|
Xóa một điều ước
while ($row = mysqli_fetch_array($result)):
echo "" . htmlentities($row["description"]) . " ";
echo "" . htmlentities($row["due_date"]) . " \n";
?>
\n";
endwhile;
mysqli_free_result($result);
?>
Kiểm tra chức năng xóa mong muốn
Mã nguồn ứng dụng sau khi bài học hiện tại được hoàn thành
Item Due Date
get_wisher_id_by_name($_SESSION["user"]);
$result = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID);
while($row = mysqli_fetch_array($result)):
echo "" . htmlentities($row['description']) . " ";
echo "" . htmlentities($row['due_date']) . " ";
$wishID = $row["id"];
?>
\n";
endwhile;
mysqli_free_result($result);
?>
Bước tiếp theo
Item Due Date
get_wisher_id_by_name($_SESSION["user"]);
$stid = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID);
while ($row = oci_fetch_array($stid)):
echo "" . htmlentities($row["DESCRIPTION"]) . " ";
echo "" . htmlentities($row["DUE_DATE"]) . " ";
$wishID = $row["ID"];
?>
\n";
endwhile;
oci_free_statement($stid);
?>
Mở rộng mảng
Test this form
5Cập nhật mẫu đầu vào HTML
Cập nhật mong muốn trong cơ sở dữ liệu
Trong
Test this form
7, hãy thay thế khối PHP trong HTML trên biểu mẫu đầu vào Hello
Item Due Date
get_wisher_id_by_name($_SESSION["user"]);
$result = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID);
while ($row = mysqli_fetch_array($result)) {
echo "" . htmlentities($row["description"]) . " ";
echo "" . htmlentities($row["due_date"]) . " \n";
}
mysqli_free_result($result);
?>
0 bằng mã mở rộng cho mảng
Test this form
5.Đối với cơ sở dữ liệu MySQL:
0Đối với cơ sở dữ liệu Oracle:
1Mã khởi tạo mảng
Test this form
5 với ba phần tử: Hello
Item Due Date
get_wisher_id_by_name($_SESSION["user"]);
$result = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID);
while ($row = mysqli_fetch_array($result)) {
echo "" . htmlentities($row["description"]) . " ";
echo "" . htmlentities($row["due_date"]) . " \n";
}
mysqli_free_result($result);
?>
3, Hello
Item Due Date
get_wisher_id_by_name($_SESSION["user"]);
$result = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID);
while ($row = mysqli_fetch_array($result)) {
echo "" . htmlentities($row["description"]) . " ";
echo "" . htmlentities($row["due_date"]) . " \n";
}
mysqli_free_result($result);
?>
4 và Hello
Item Due Date
get_wisher_id_by_name($_SESSION["user"]);
$result = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID);
while ($row = mysqli_fetch_array($result)) {
echo "" . htmlentities($row["description"]) . " ";
echo "" . htmlentities($row["due_date"]) . " \n";
}
mysqli_free_result($result);
?>
5. Các giá trị của các yếu tố này phụ thuộc vào phương thức yêu cầu máy chủ. Nếu phương thức yêu cầu máy chủ là POST, các giá trị được nhận từ biểu mẫu đầu vào. Mặt khác, nếu phương thức yêu cầu máy chủ được nhận và mảng $ _GET chứa một phần tử có khóa "WishId", các giá trị được lấy từ cơ sở dữ liệu bởi hàm get_wish_by_wish_id. Cuối cùng, nếu phương thức yêu cầu máy chủ không phải là bài đăng cũng không nhận được, điều đó có nghĩa là thêm trường hợp sử dụng mong muốn mới diễn ra, các phần tử trống.Mã trước bao gồm các trường hợp để tạo và chỉnh sửa mong muốn. Bây giờ bạn cần cập nhật mẫu đầu vào để nó cũng có thể được sử dụng cho cả hai trường hợp.
Cập nhật mẫu đầu vào HTML
Hiện tại hình thức đầu vào hoạt động khi bạn muốn tạo một mong muốn mới và không có ID mong muốn. Để biểu mẫu hoạt động khi bạn muốn chỉnh sửa một mong muốn hiện có, bạn cần thêm một trường ẩn để chuyển ID của mong muốn. Giá trị của trường ẩn phải được lấy từ mảng $ mong muốn. Giá trị phải là một chuỗi trống trong quá trình tạo ra một mong muốn mới. Nếu mong muốn được chỉnh sửa, giá trị của trường ẩn phải thay đổi thành ID của mong muốn. Để tạo trường ẩn này, hãy thêm dòng sau vào đầu của mẫu đầu vào
Hello
Item Due Date
get_wisher_id_by_name($_SESSION["user"]);
$result = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID);
while ($row = mysqli_fetch_array($result)) {
echo "" . htmlentities($row["description"]) . " ";
echo "" . htmlentities($row["due_date"]) . " \n";
}
mysqli_free_result($result);
?>
0 trong
Test this form
7:
2Cập nhật mong muốn trong cơ sở dữ liệu
Bây giờ bạn cần cập nhật mã xác minh dữ liệu đầu vào và chèn mong muốn vào cơ sở dữ liệu. Mã hiện tại không phân biệt giữa việc tạo trường hợp mong muốn mới và cập nhật mã hiện có. Trong triển khai hiện tại, một bản ghi mới luôn được thêm vào cơ sở dữ liệu vì mã không xác minh giá trị của ID mong muốn được chuyển từ biểu mẫu đầu vào.
Bạn cần thêm các chức năng sau:
Nếu phần tử được chuyển "WishID" là một chuỗi trống, hãy tạo một mong muốn mới.
Mặt khác, nếu phần tử "WishID" không phải là một chuỗi trống, hãy cập nhật mong muốn.
Để cập nhật editwish.php để nó xác minh xem điều ước mới là mới và cập nhật nó nếu nó không mới:
Thêm hàm
8 vàoHello
get_wisher_id_by_name($_SESSION["user"]); $result = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID); while ($row = mysqli_fetch_array($result)) { echo "Item Due Date \n"; } mysqli_free_result($result); ?>" . htmlentities($row["description"]) . " "; echo "" . htmlentities($row["due_date"]) . "
9.Hello
get_wisher_id_by_name($_SESSION["user"]); $result = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID); while ($row = mysqli_fetch_array($result)) { echo "Item Due Date \n"; } mysqli_free_result($result); ?>" . htmlentities($row["description"]) . " "; echo "" . htmlentities($row["due_date"]) . "
Đối với cơ sở dữ liệu MySQL:
3Đối với cơ sở dữ liệu Oracle:
4Mã khởi tạo mảng
5 với ba phần tử:Test this form
3,Hello
get_wisher_id_by_name($_SESSION["user"]); $result = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID); while ($row = mysqli_fetch_array($result)) { echo "Item Due Date \n"; } mysqli_free_result($result); ?>" . htmlentities($row["description"]) . " "; echo "" . htmlentities($row["due_date"]) . "
4 vàHello
get_wisher_id_by_name($_SESSION["user"]); $result = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID); while ($row = mysqli_fetch_array($result)) { echo "Item Due Date \n"; } mysqli_free_result($result); ?>" . htmlentities($row["description"]) . " "; echo "" . htmlentities($row["due_date"]) . "
5. Các giá trị của các yếu tố này phụ thuộc vào phương thức yêu cầu máy chủ. Nếu phương thức yêu cầu máy chủ là POST, các giá trị được nhận từ biểu mẫu đầu vào. Mặt khác, nếu phương thức yêu cầu máy chủ được nhận và mảng $ _GET chứa một phần tử có khóa "WishId", các giá trị được lấy từ cơ sở dữ liệu bởi hàm get_wish_by_wish_id. Cuối cùng, nếu phương thức yêu cầu máy chủ không phải là bài đăng cũng không nhận được, điều đó có nghĩa là thêm trường hợp sử dụng mong muốn mới diễn ra, các phần tử trống.Hello
get_wisher_id_by_name($_SESSION["user"]); $result = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID); while ($row = mysqli_fetch_array($result)) { echo "Item Due Date \n"; } mysqli_free_result($result); ?>" . htmlentities($row["description"]) . " "; echo "" . htmlentities($row["due_date"]) . "
Đối với cơ sở dữ liệu MySQL:
5Đối với cơ sở dữ liệu Oracle:
6Mã khởi tạo mảng
5 với ba phần tử:Test this form
3,Hello
get_wisher_id_by_name($_SESSION["user"]); $result = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID); while ($row = mysqli_fetch_array($result)) { echo "Item Due Date \n"; } mysqli_free_result($result); ?>" . htmlentities($row["description"]) . " "; echo "" . htmlentities($row["due_date"]) . "
4 vàHello
get_wisher_id_by_name($_SESSION["user"]); $result = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID); while ($row = mysqli_fetch_array($result)) { echo "Item Due Date \n"; } mysqli_free_result($result); ?>" . htmlentities($row["description"]) . " "; echo "" . htmlentities($row["due_date"]) . "
5. Các giá trị của các yếu tố này phụ thuộc vào phương thức yêu cầu máy chủ. Nếu phương thức yêu cầu máy chủ là POST, các giá trị được nhận từ biểu mẫu đầu vào. Mặt khác, nếu phương thức yêu cầu máy chủ được nhận và mảng $ _GET chứa một phần tử có khóa "WishId", các giá trị được lấy từ cơ sở dữ liệu bởi hàm get_wish_by_wish_id. Cuối cùng, nếu phương thức yêu cầu máy chủ không phải là bài đăng cũng không nhận được, điều đó có nghĩa là thêm trường hợp sử dụng mong muốn mới diễn ra, các phần tử trống.Hello
get_wisher_id_by_name($_SESSION["user"]); $result = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID); while ($row = mysqli_fetch_array($result)) { echo "Item Due Date \n"; } mysqli_free_result($result); ?>" . htmlentities($row["description"]) . " "; echo "" . htmlentities($row["due_date"]) . "
7Mã trước bao gồm các trường hợp để tạo và chỉnh sửa mong muốn. Bây giờ bạn cần cập nhật mẫu đầu vào để nó cũng có thể được sử dụng cho cả hai trường hợp.
8Cập nhật mẫu đầu vào HTML
Hiện tại hình thức đầu vào hoạt động khi bạn muốn tạo một mong muốn mới và không có ID mong muốn. Để biểu mẫu hoạt động khi bạn muốn chỉnh sửa một mong muốn hiện có, bạn cần thêm một trường ẩn để chuyển ID của mong muốn. Giá trị của trường ẩn phải được lấy từ mảng $ mong muốn. Giá trị phải là một chuỗi trống trong quá trình tạo ra một mong muốn mới. Nếu mong muốn được chỉnh sửa, giá trị của trường ẩn phải thay đổi thành ID của mong muốn. Để tạo trường ẩn này, hãy thêm dòng sau vào đầu của mẫu đầu vào Hello
Item | Due Date |
---|---|
" . htmlentities($row["description"]) . " | "; echo "" . htmlentities($row["due_date"]) . " |
Test this form
7:Cập nhật mong muốn trong cơ sở dữ liệu
Bây giờ bạn cần cập nhật mã xác minh dữ liệu đầu vào và chèn mong muốn vào cơ sở dữ liệu. Mã hiện tại không phân biệt giữa việc tạo trường hợp mong muốn mới và cập nhật mã hiện có. Trong triển khai hiện tại, một bản ghi mới luôn được thêm vào cơ sở dữ liệu vì mã không xác minh giá trị của ID mong muốn được chuyển từ biểu mẫu đầu vào.
Bạn cần thêm các chức năng sau:
Nếu phần tử được chuyển "WishID" là một chuỗi trống, hãy tạo một mong muốn mới.
Mặt khác, nếu phần tử "WishID" không phải là một chuỗi trống, hãy cập nhật mong muốn.
Để cập nhật editwish.php để nó xác minh xem điều ước mới là mới và cập nhật nó nếu nó không mới:
Thêm hàm Hello
Item | Due Date |
---|---|
" . htmlentities($row["description"]) . " | "; echo "" . htmlentities($row["due_date"]) . " |
Item | Due Date |
---|---|
" . htmlentities($row["description"]) . " | "; echo "" . htmlentities($row["due_date"]) . " |
Thêm hàm
while ($row = mysqli_fetch_array($result)){:
echo "" . htmlentities($row["description"]) . " ";
echo "" . htmlentities($row["due_date"]) . " \n";
}
mysqli_free_result($result);
?>
0 vào Hello
Item Due Date
get_wisher_id_by_name($_SESSION["user"]);
$result = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID);
while ($row = mysqli_fetch_array($result)) {
echo "" . htmlentities($row["description"]) . " ";
echo "" . htmlentities($row["due_date"]) . " \n";
}
mysqli_free_result($result);
?>
9.Trong khối chính, trên cùng của
7, thêm một điều kiện vào câu lệnh
Test this form
3 cuối cùng. Đây là câu lệnh while ($row = mysqli_fetch_array($result)){:
echo "
\n";
}
mysqli_free_result($result);
?>
" . htmlentities($row["description"]) . " ";
echo "" . htmlentities($row["due_date"]) . "
3 chèn mong muốn vào cơ sở dữ liệu. Thay đổi nó thành một câu lệnh while ($row = mysqli_fetch_array($result)){:
echo "
\n";
}
mysqli_free_result($result);
?>
" . htmlentities($row["description"]) . " ";
echo "" . htmlentities($row["due_date"]) . "
5: while ($row = mysqli_fetch_array($result)){:
echo "
\n";
}
mysqli_free_result($result);
?>
" . htmlentities($row["description"]) . " ";
echo "" . htmlentities($row["due_date"]) . "
Nhập hoặc dán một câu lệnh
5 bên dưới câu bạn vừa chỉnh sửa:while ($row = mysqli_fetch_array($result)){: echo "
\n"; } mysqli_free_result($result); ?>" . htmlentities($row["description"]) . " "; echo "" . htmlentities($row["due_date"]) . "
Đối với cơ sở dữ liệu MySQL:
9Đối với cơ sở dữ liệu Oracle:
Test this form
0Mã kiểm tra xem phần tử
7 trong mảngwhile ($row = mysqli_fetch_array($result)){: echo "
\n"; } mysqli_free_result($result); ?>" . htmlentities($row["description"]) . " "; echo "" . htmlentities($row["due_date"]) . "
8 không phải là một chuỗi trống, điều đó có nghĩa là người dùng được chuyển hướng từ trangwhile ($row = mysqli_fetch_array($result)){: echo "
\n"; } mysqli_free_result($result); ?>" . htmlentities($row["description"]) . " "; echo "" . htmlentities($row["due_date"]) . "
6 bằng cách nhấn nút chỉnh sửa và người dùng đã điền vào mô tả của mong muốn. Nếu kiểm tra thành công, mã gọi hàmTest this form
8 với các tham số đầu vàoHello
get_wisher_id_by_name($_SESSION["user"]); $result = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID); while ($row = mysqli_fetch_array($result)) { echo "Item Due Date \n"; } mysqli_free_result($result); ?>" . htmlentities($row["description"]) . " "; echo "" . htmlentities($row["due_date"]) . "
7,while ($row = mysqli_fetch_array($result)){: echo "
\n"; } mysqli_free_result($result); ?>" . htmlentities($row["description"]) . " "; echo "" . htmlentities($row["due_date"]) . "
4 vàHello
get_wisher_id_by_name($_SESSION["user"]); $result = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID); while ($row = mysqli_fetch_array($result)) { echo "Item Due Date \n"; } mysqli_free_result($result); ?>" . htmlentities($row["description"]) . " "; echo "" . htmlentities($row["due_date"]) . "
3 được gọi, ứng dụng được chuyển hướng đến trangwhile ($row = mysqli_fetch_array($result)): echo "
\n"; ?>" . htmlentities($row["description"]) . " "; echo "" . htmlentities($row["due_date"]) . "
6 và xử lý PHP bị hủy.Test this form
Test this form
1Kiểm tra chức năng muốn chỉnh sửa
Chạy ứng dụng. Trên trang index.php, điền vào các trường: Trong trường tên người dùng, nhập "tom", vào trường mật khẩu, nhập "tomcat".
Test this form
2Toàn bộ bảng, bao gồm cả biểu mẫu với nút chỉnh sửa bên trong `trong khi` vòng lặp, giờ đây trông như thế này:
Đối với cơ sở dữ liệu MySQL:
Test this form
3Đối với cơ sở dữ liệu Oracle:
Item Due Date
get_wisher_id_by_name($_SESSION["user"]);
$stid = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID);
while ($row = oci_fetch_array($stid)):
echo "" . htmlentities($row["DESCRIPTION"]) . " ";
echo "" . htmlentities($row["DUE_DATE"]) . " ";
$wishID = $row["ID"];
?>
\n";
endwhile;
oci_free_statement($stid);
?>
Kiểm tra chức năng xóa mong muốn
Để kiểm tra xem chức năng có được triển khai chính xác không, hãy nhấn xóa bên cạnh bất kỳ mục nào trên trang
Test this form
6. Mục không còn trong danh sách.Mã nguồn ứng dụng sau khi bài học hiện tại được hoàn thành
Người dùng MySQL: Bấm vào đây để tải xuống mã nguồn phản ánh trạng thái dự án sau khi hoàn thành bài học.
Người dùng cơ sở dữ liệu Oracle: Bấm vào đây để tải xuống mã nguồn phản ánh trạng thái dự án sau khi hoàn thành bài học.