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

时间:2012-07-10 21:24:39

标签: php mysql

我想将数据库中的数据加载到复选框列表中以显示和选择,这是我的代码。但它没有用,所以任何人都可以为我纠正这个代码吗?

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

<?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/>";
   }

?>

4 个答案:

答案 0 :(得分:1)

你的while循环之后你有{太多了。删除其中一个,代码就可以了。

除此之外,您应该使用PDO(或mysqli)代替不推荐使用的mysql扩展来访问您的数据库。

答案 1 :(得分:1)

在while循环中:

while ($row = mysql_fetch_array($section)){
   {

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

答案 2 :(得分:1)

在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;
    }
    

答案 3 :(得分:0)

有2个{同时删除一个。并且还摆脱了这些标签,使用css来获得所需的填充