从数据库中删除所有记录
“action.php”文件处理多个记录删除功能。
- 检查是否提交了删除请求。
- 检查用户是否至少选择一个记录,并且ID数组不为空。
- 在PHP中使用$_post获取选定的ID,并在PHP中使用Implode()函数将此数组转换为字符串。
- 根据所选用户的ID删除数据库中的记录。
- 将状态消息显示给用户。
从列表中的大量数据中逐个删除记录将非常耗时。
我们可以通过一次删除多个记录来更轻松。
通过允许用户在单击单击上删除多行来,大数据列表可以是用户友好的。
在Web应用程序中,强烈建议在单击单击中删除多个记录。
我们可以使用复选框来选择每条记录并在删除请求提交后删除所有所选行。
此外,jQuery可用于在数据列表中一次选择或者取消选中所有复选框。
在本教程中,我们将向我们展示如何使用Checkbox中从MySQL数据库中删除多个记录。
示例代码,将遵循以下步骤删除PHP中的复选框删除多个记录。
- 从数据库中获取所有用户数据,并在HTML表中列出它们。
- 在每行中添加复选框以在用户的数据列表中选择多个记录。
- 在表格中添加复选框以检查或者取消选中单击的所有复选框。
- 添加删除按钮以从MySQL数据库表中删除所有选定的用户。
数据列表包含复选框
在此文件中,我们将从“用户”表中获取所有记录,并在HTML表中使用复选框列出它们。
JavaScript代码:
jQuery用于集成删除确认对话框,然后选择所有复选框功能。
因此,请先包含jQuery库。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
“delete_confirm()”功能检查用户是否至少选中一个复选框并在未选中任何复选框时显示警报。
此外,在将表单提交到服务器端以进行删除记录之前,请显示确认弹出窗口。
function delete_confirm(){ if($('.checkbox:checked').length > 0){ var result = confirm("Are you sure to delete selected users?"); if(result){ return true; }else{ return false; } }else{ alert('Select at least 1 record to delete.'); return false; } }
以下jQuery代码用于实现SELECT /取消选择所有复选框功能。
它有助于用户在单击中检查/取消选中表中的所有复选框。
$(document).ready(function(){ $('#select_all').on('click',function(){ if(this.checked){ $('.checkbox').each(function(){ this.checked = true; }); }else{ $('.checkbox').each(function(){ this.checked = false; }); } }); $('.checkbox').on('click',function(){ if($('.checkbox:checked').length == $('.checkbox').length){ $('#select_all').prop('checked',true); }else{ $('#select_all').prop('checked',false); } }); });
HTML和PHP代码:
用户可以使用表中的复选框检查单个或者多个记录,并从MySQL数据库中删除多个记录。
- 包括“dbconfig.php”文件以连接MySQL数据库。
- 从用户表中检索所有记录。
- 可以使用在每个表行上提供的复选框来选择多个记录。
- 通过单击表格标题中的复选框,将检查或者未选中所有复选框。
- 单击删除按钮后,将出现确认对话框。
- 确认后,将提交表单以从数据库中删除所选行。
<!-- Display the status message --> <?php if(!empty($statusMsg)){ ?> <div class="alert alert-success"><?php echo $statusMsg; ?></div> <?php } ?> <!-- Users data list --> <form name="bulk_action_form" action="" method="post" onSubmit="return delete_confirm();"/> <table class="bordered"> <thead> <tr> <th><input type="checkbox" id="select_all" value=""/></th> <th>First Name</th> <th>Last Name</th> <th>Email</th> <th>Phone</th> </tr> </thead> <?php //Include the database configuration file include_once 'dbConfig.php'; //Get users from the database $query = $db->query("SELECT * FROM users ORDER BY id DESC"); //List all records if($query->num_rows > 0){ while($row = $query->fetch_assoc()){ ?> <tr> <td align="center"><input type="checkbox" name="checked_id[]" class="checkbox" value="<?php echo $row['id']; ?>"/></td> <td><?php echo $row['first_name']; ?></td> <td><?php echo $row['last_name']; ?></td> <td><?php echo $row['email']; ?></td> <td><?php echo $row['phone']; ?></td> </tr> <?php } }else{ ?> <tr><td colspan="5">No records found.</td></tr> <?php } ?> </table> <input type="submit" class="btn btn-danger" name="bulk_delete_submit" value="DELETE"/> </form>
创建数据库表
需要在数据库中创建表以存储用户的数据。
以下SQL在MySQL数据库中使用一些基本字段创建“用户”表。
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `first_name` varchar(100) COLLATE utf8_unicode_ci NOT NULL, `last_name` varchar(100) COLLATE utf8_unicode_ci NOT NULL, `email` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `phone` varchar(15) COLLATE utf8_unicode_ci NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1=Active, 0=Deactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
数据库配置(dbconfig.php)
'dbconfig.php'文件用于连接和选择数据库。
指定数据库主机名('$dbhost'),用户名('$dbusernam'),密码('$dbpassword'),以及根据mysql数据库凭据的名称('$dbname')。
<?php //Database configuration $dbHost = "localhost"; $dbUsername = "root"; $dbPassword = "root"; $dbName = "onitroad"; //Create database connection $db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName); //Check connection if ($db->connect_error) { die("Connection failed: " . $db->connect_error); } ?>