php - 如何从 PHP 中的数据库中检索复选框值

标签 php html mysql

我的问题是如何在 PHP 中从数据库中检索复选框值。以下代码无效。

<td>Hobby</td>
<?php
    $result = mysqli_query($con,"SELECT hobby FROM simple WHERE id = id"); 
    while($row = mysqli_fetch_array($result))
    {
        $focus = explode(",", $row['hobby']);
?>    
<td>
    <input type="checkbox"  name="hobby[]"  value="Cricket"  size="17"   <?php if(in_array("Cricket",$hobby)) { ?> checked="checked" <?php } ?> >Cricket
    <input type="checkbox" name="hobby[]"  value="Music" size="17" <?php if(in_array("Music",$hobby)) { ?> checked="checked" <?php } ?> >Music
    <input type="checkbox" name="hobby[]"  value="Reading"   size="17" <?php if(in_array("Reading",$hobby)) { ?> checked="checked" <?php } ?> >Reading
    <input type="checkbox" name="hobby[]"  value="Study" size="17" <?php if(in_array("Study",$hobby)) { ?> checked="checked" <?php } ?> >Study</td>
<?php
   }
?>
</tr>

最佳答案

改变声明,

$focus=explode(",",$row['hobby']);

收件人:

$hobby=explode(",",$row['hobby']);

此外,您可以使用三元运算符而不是 if else 来最小化代码:

<td>
  <input type="checkbox"  name="hobby[]"  value="Cricket"  size="17" <?php echo (in_array("Cricket",$hobby)) ? 'checked="checked" : '';?>>Cricket
  <input type="checkbox" name="hobby[]"  value="Music" size="17" <?php echo (in_array("Music",$hobby)) ? 'checked="checked" : '';?>>Music
  <input type="checkbox" name="hobby[]"  value="Reading"   size="17" <?php echo (in_array("Reading",$hobby)) ? 'checked="checked" : '';?>>Reading
</td>

此外,@mapek 建议,您的 SQL 将获取所有记录。

$result = mysqli_query($con,"SELECT hobby FROM simple WHERE id = id");

因为 id 总是等于 id

你应该把它改成:

$result = mysqli_query($con,"SELECT hobby FROM simple WHERE id = '$id'");

使用数组最小化此代码的另一个版本:

<td>
<?php
$hobbies = array('Cricket', 'Music', 'Reading');
if (! empty($hobbies)) {
  foreach ($hobbies as $myHobby) {
    $checked = (in_array($myHobby, $hobby)) ? 'checked="checked"' : '';
?>
<input type="checkbox" name="hobby[]" value="<?php echo $myHobby;?>" size="17" <?php echo $checked;?>><?php echo $myHobby;?>
<?php
    }
}
?>
</td>

关于php - 如何从 PHP 中的数据库中检索复选框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34670773/

相关文章:

php - 关于 Apache 如何处理文件上传的任何文档?

html - 纯 CSS 导航菜单 - 需要根元素在打开时保持黑色

html - 获取 CLI 工具的 Linux 终端输出并显示在网页中

mysql - 如何将磁盘上的图像插入数据库表?

php - 允许外部开发人员从我的网络应用程序集成一些基本功能的最简单方法是什么?

php - 将包含对象的数组展平/简化为数组数组

php - 带有 mysql_fetch_array 的嵌套 While 循环给出空白结果

javascript - 在 IFrame 中更改样式 - JQuery

python - 如何在Python数据框中按多索引(包括初始数字索引和其他列)进行分组?

php cURL函数301错误