如何在复选框列表中显示数据库中的值?
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。<br/>
标签是什么?您为表格回显行,不要在表格行之间使用 分隔符。请粘贴 netire 文件。另外,使用 distinct(field)
【参考方案1】:
在您的 while 循环之后,您的 太多了。删除其中一个,代码就可以工作了。
除此之外,您应该真正使用 PDO(或 mysqli)而不是已弃用的 mysql
扩展来访问您的数据库。
【讨论】:
你的文件中哪一行是 70?把这个代码行注释掉,会有帮助的 我现在没有收到任何错误消息,但代码仍然无法正常工作。当我尝试在复选框列表中显示数组中的数字时,它可以工作,但是当我尝试显示数据库中的值时,它不起作用。 尝试单独运行查询,看看有没有结果 在这种情况下,检查您的数据库表字段,这就是错误所在 查询工作正常我通过在下拉框中显示并尝试了相同的工作。【参考方案2】:在while循环中:
while ($row = mysql_fetch_array($section))
为什么有两个?删除其中一个。
【讨论】:
【参考方案3】:删除 while 声明后的双 。
我建议你稍微重构一下你的代码。
使用htmlentities($row['Section_Text'])
转义您的输出
不要使用位置$
printf 表示法重复自己
使用<label ... />
表示法使您的表单易于访问: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 获得所需的填充
【讨论】:
以上是关于如何在复选框列表中显示数据库中的值?的主要内容,如果未能解决你的问题,请参考以下文章