Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从mysql使用PHP构建复选框_Php_Mysql_Checkbox - Fatal编程技术网

从mysql使用PHP构建复选框

从mysql使用PHP构建复选框,php,mysql,checkbox,Php,Mysql,Checkbox,我的数据库中有下表: CREATE TABLE subjects ( subject_id int(11) NOT NULL AUTO_INCREMENT, subject text, PRIMARY KEY (subject_id) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; 在表中,我已经输入了一些数据主体名称 我想做的是,对于表中的每个主题,都会创建一个复选框,旁边有主题的名称 到目前为止,我已经为表中的每

我的数据库中有下表:

CREATE TABLE subjects (
  subject_id int(11) NOT NULL AUTO_INCREMENT,
  subject text,
  PRIMARY KEY (subject_id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
在表中,我已经输入了一些数据主体名称

我想做的是,对于表中的每个主题,都会创建一个复选框,旁边有主题的名称

到目前为止,我已经为表中的每个主题创建了复选框,但是我无法获得复选框旁边显示的主题名称。有人知道怎么做吗

我是这样做的:

<?php
$sql = "SELECT subject FROM subjects"; /*Select from table name: subjects*/
$result = $conn->query($sql); /*Check connection*/

if($result)
{
    foreach($result as $row)
    {
        echo "<input type='checkbox' name='data[]' value='" . htmlspecialchars($row['subject']) . "' /> <label>Here goes the subject name</label>";
    }
}
?>
我的桌子是这样的:

这就是我在PHP中得到的:


实际上非常简单,只需在标签标签之间连接$row['subject']变量:

foreach($result as $row)
    {
        echo "<input type='checkbox' name='data[]' value='" . htmlspecialchars($row['subject']) . "' /> <label>" .$row['subject'] . "</label>";
    }

您可以在任何输出中多次使用变量。

是否可以发布输出的图片…尝试调试$row对象,并使用var\u dump或print\r查看它包含的内容-您可能从查询中获得对象或数组,而不是关联数组。您可能只需要使用$row[0]它在数据库中的存储方式如何?您只是在寻找echo。htmlspecialchars$行[“主题];您的查询只是选择主题;是这个名字吗?您是否应该选择*并访问值中的$row[subject_id],然后输出$row[subject]呢?是的,它可以工作!非常感谢。它也适用于。htmlspecialchars$row['subject']。不确定为什么要在该函数中包装值-来自数据库的内容应该已经安全了。不,您总是为HTML输出转义,在将值放入数据库之前从不转义。@JayBlanchard我一直听说大多数情况下,内容都应该存储在数据库中,并在输出时转义。在输出时转义就足够了。