【问题标题】:Build checkboxes with PHP from mysql从 mysql 使用 PHP 构建复选框
【发布时间】:2019-04-30 03:21:14
【问题描述】:

我的数据库中有下表:

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 中得到的:

【问题讨论】:

  • 你能把输出的图片贴出来吗...
  • 尝试使用 var_dump() 或 print_r() 调试 $row 对象,并查看它包含的内容 - 您可能会从查询中获取对象或数组,而不是关联数组。您可能只需要使用 $row[0]
  • 在数据库中是如何存储的?
  • 你是在找echo "&lt;input type='checkbox' name='data[]' value='" . htmlspecialchars($row['subject']) . "' /&gt; &lt;label&gt;" . htmlspecialchars($row['subject']) . "&lt;/label&gt;";
  • 您的查询只选择了subject;是这个名字吗?您是否应该执行SELECT * 并在value 中访问$row["subject_id"] 并在之后输出$row["subject"]

标签: php mysql checkbox


【解决方案1】:

其实很简单,只需在标签标签之间连接$row['subject'] 变量:

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

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

【讨论】:

  • 是的,它有效!谢谢你。它也适用于
  • 不确定为什么要在该函数中包装值 - 来自数据库的东西应该已经安全了。
  • 不,您总是为 HTML 输出转义,在将值放入数据库之前从不转义。
  • @JayBlanchard 我一直听说大部分时间应该将内容存储在原始数据库中,并在输出时转义。
  • 输出转义就足够了。
猜你喜欢
  • 1970-01-01
  • 2023-04-05
  • 2013-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多