mysql多选一列表

2023-12-20 17:00:10 举报文章

在web开发中,我们经常会遇到需要在页面中展示多选一的列表的需求。如何实现这一功能呢?我们可以使用MySQL来完成。下面我们来介绍一下如何使用MySQL实现多选一列表。

--by www.qzphp.cn
CREATE TABLE `list` (
  
  `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  
  `name` VARCHAR(50) NOT NULL,
  
  `is_checked` TINYINT(1) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 

如上所示,我们创建了一个名为list的表,里面包含了三个字段:id、name以及is_checked。其中,id是自增主键,用于标识每一条记录;name是列表项的名称;is_checked是用来判断这一项是否被选中的标记,0表示未选中,1表示选中。

接下来,我们可以向列表中添加一些数据:

--by www.qzphp.cn
INSERT INTO `list` (`name`) VALUES ('选项1');
INSERT INTO `list` (`name`) VALUES ('选项2');
INSERT INTO `list` (`name`) VALUES ('选项3');
INSERT INTO `list` (`name`) VALUES ('选项4');
INSERT INTO `list` (`name`) VALUES ('选项5');
 

现在,我们可以在页面中展示这个多选一的列表了。一种常见的展示方式是使用HTML的input标签,并将type属性设置为radio。此时,只能选择一个选项。代码如下:

--by www.qzphp.cn
<form action="submit.php" method="post"> <?php
  
   
   $result = mysqli_query($link, "SELECT * FROM `list`");
  
   
   while ($row = mysqli_fetch_assoc($result)) {
  
   
   
   
 if ($row['is_checked'] == 1) {
  
   
   
   
   
  $checked = ' checked="checked"';
  
   
   
   
}
 else {
  
   
   
   
   
  $checked = '';
  
   
   
   
}
  
   
   
   
echo '<input type="radio" name="list" value="' . $row['id'] . '"' . $checked . '> ' . $row['name'] . '<br/>';
  
   
}
  
?> <input type="submit" value="提交"></form>

上述代码会从数据库中查询出所有列表项,然后依次输出到页面中。如果该项被标记为is_checked为1,则勾选该选项。当用户提交表单之后,我们可以通过POST方式获取用户选择的选项。

代码如下:

--by www.qzphp.cn
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  
  $list = $_POST['list'];
  
  mysqli_query($link, "UPDATE `list` SET `is_checked` = 0");
  
  mysqli_query($link, "UPDATE `list` SET `is_checked` = 1 WHERE `id` = " . $list);
}
 

以上代码会将用户提交的选项作为参数,先将所有选项的is_checked标记为0,再将用户选中的选项的is_checked标记为1。这样,我们就完成了MySQL实现多选一列表的功能。

如果你认为本文可读性较差,内容错误,或者文章排版错乱,请点击举报文章按钮,我们会立即处理!