如何在复选框列表中显示数据库中的值?

Posted

技术标签:

【中文标题】如何在复选框列表中显示数据库中的值?【英文标题】:How to display values from database in a checkbox list? 【发布时间】:2012-07-10 21:24:38 【问题描述】:

我想将数据从数据库加载到复选框列表以显示和选择,这是我的代码。但它不起作用,所以任何人都可以为我更正此代码吗?

执行此操作时,我收到错误消息“解析错误:语法错误,第 70 行 C:\xampp\htdocs\test.php 中的意外 $end”

<?php   
    $section = mysql_query("SELECT DISTINCT Section_Text FROM Section");

    while ($row = mysql_fetch_array($section))
   
    echo "<tr><td>";
    echo "<input type='checkbox' name='Section' value ='Section_Text'";
    echo " />";
    echo $row['Section_Text'];

    echo "</td></tr><br/>";
   

?>

【问题讨论】:

ThiefMaster 是对的,为了避免以后再犯这样的错误,尝试使用更好的工作空间——比如eclipse PDT 或者zend。 &lt;br/&gt; 标签是什么?您为表格回显行,不要在表格行之间使用 分隔符。请粘贴 netire 文件。另外,使用 distinct(field) 【参考方案1】:

在您的 while 循环之后,您的 太多了。删除其中一个,代码就可以工作了。

除此之外,您应该真正使用 PDO(或 mysqli)而不是已弃用的 mysql 扩展来访问您的数据库。

【讨论】:

你的文件中哪一行是 70?把这个代码行注释掉,会有帮助的 我现在没有收到任何错误消息,但代码仍然无法正常工作。当我尝试在复选框列表中显示数组中的数字时,它可以工作,但是当我尝试显示数据库中的值时,它不起作用。 尝试单独运行查询,看看有没有结果 在这种情况下,检查您的数据库表字段,这就是错误所在 查询工作正常我通过在下拉框中显示并尝试了相同的工作。【参考方案2】:

在while循环中:

while ($row = mysql_fetch_array($section))
   

为什么有两个?删除其中一个。

【讨论】:

【参考方案3】:

删除 while 声明后的双

我建议你稍微重构一下你的代码。

使用htmlentities($row['Section_Text']) 转义您的输出 不要使用位置$ printf 表示法重复自己

使用&lt;label ... /&gt; 表示法使您的表单易于访问:check this

<?php   
$section = mysql_query("SELECT DISTINCT Section_Text FROM Section");

$n = 0;
while ($row = mysql_fetch_array($section))

    print "<tr><td>" . PHP_EOL;
    printf('<input type="checkbox" name="section_%2$d" id="section_%2$d" value="%1$s" />
         <label for="section_%2$d">%1$s</label>' . PHP_EOL,
          htmlentities($row['Section_Text'], ENT_QUOTES), $n++
    );
    print "</td></tr>" . PHP_EOL;

【讨论】:

【参考方案4】:

此时有 2 个 ,删除一个。并摆脱 标签,使用 css 获得所需的填充

【讨论】:

以上是关于如何在复选框列表中显示数据库中的值?的主要内容,如果未能解决你的问题,请参考以下文章

mfc如何将复选框勾选后,把里面内容实时传到列表框中?

如何在 DataList 中显示条件复选框

如何获得我的组件来计算React中复选框值的总和?

Android:如何在列表视图中自动显示带有复选框的 Sqlite 数据库

未正确读取复选框值

如果数据库中的值为 1,则检查 XSL 复选框显示