使用php显示数据库中的多个复选框值

使用php显示数据库中的多个复选框值,php,html,mysql,forms,Php,Html,Mysql,Forms,我需要显示多个复选框,但我的代码只显示上次选中的复选框 为什么会这样 下面是我的代码: <html> <head> <title>CHECK</title> </head> <body> <?php ini_set("display_errors","off"); if(isset($_POST['vil'])) { $t=$_POST['vil']; }

我需要显示多个复选框,但我的代码只显示上次选中的复选框

为什么会这样

下面是我的代码:

<html>
<head>
    <title>CHECK</title>
</head>
<body>
    <?php
    ini_set("display_errors","off");
    if(isset($_POST['vil']))
    {
        $t=$_POST['vil'];
    }
    Else
    {
        $t="";
    }
    ?>

    <form method="post" id="monform" action="">
        <table border=1 width=800  cellpadding=0 cellspacing=1>
            <tr align=center>
                <td>
                    Case
                </td>
                <td>
                    Code
                </td>
                <td>
                    Nom
                </td>
            </tr>
            <?php

            ini_set("display_errors","off");

            $con = @mysql_connect("localhost","root","");
            if(!$con)
            {
                echo "erreur de connexion";
            }
            Else
            {
                mysql_select_db("database",$con);

                $sql = "SELECT * FROM table";
                $result = mysql_query($sql);

                while ($tab=mysql_fetch_array($result))
                {
                    $a=$tab["code"];
                    $b=$tab["nom"];

                    echo "                                       "
                    <tr align=center>
                    <td>
                    <input type=checkbox name=vil[] value=$a>$a<br>
                    </td>
                    <td>
                    $a
                    </td>
                    <td>
                    $b
                    </td>
                    </tr>
                    ";
                }

                ?>
                </table>

                <br><br><input type="submit" name="valider" value="valider">


                <table border=1 width=800  cellpadding=0 cellspacing=1>
                <br><br><?php
                foreach ($t as $variablename)
                {
                    $sql = "SELECT * FROM table WHERE code='".$variablename."'";
                    $result = mysql_query($sql);
                }
                while ($tab=mysql_fetch_array($result))
                {
                    $a=$tab["code"];
                    $b=$tab["nom"];
                    {
                        for ($i=0;$i<count($t);$i++)
                        {
                            echo $a."__".$b."</br>" ;

                            if(isset($t))
                            {
                                echo "                               "
                                <td>
                                $a
                                </td>
                                <td>
                                $b
                                </td>
                                ";
                            }
                        }
                    }
                }
            }


            ?>
        </table>
    </form>
</body>
</html>

检查
案例
代码
笔名

mysql函数在几年前就贬值了,你为什么还在使用它们?@MarkTwigg它们被“弃用”了。现在还不清楚这对他们的货币价值有什么影响。@MarkTwigg更好的说法是;)只是帮助你完善信息。欢迎使用
停止使用mysql\uuuu函数
squad@Strawberry在注释中列出“montery原因”并不实际,但总而言之,它不是主动开发的,不支持异步查询,没有任何OO接口,没有存储过程,没有任何准备好的语句,没有事务,没有参数化查询。我可以继续说下去,但我认为上面的清单中有足够的货币价值。在我的头脑中,根本没有逻辑上的理由为什么还要继续使用它,因此我问他这背后的决定是什么was@MarkTwigg他在开玩笑<代码>折旧是一个货币术语,意思是它失去了价值
deprecate
是一个表示“表示不赞成”(即自嘲式幽默)的术语。你想要的术语是最近的mysql函数,多年前它已经贬值了,为什么你还在使用它们?@MarkTwigg他们已经“弃用”了。现在还不清楚这对他们的货币价值有什么影响。@MarkTwigg更好的说法是;)只是帮助你完善信息。欢迎使用
停止使用mysql\uuuu函数
squad@Strawberry在注释中列出“montery原因”并不实际,但总而言之,它不是主动开发的,不支持异步查询,没有任何OO接口,没有存储过程,没有任何准备好的语句,没有事务,没有参数化查询。我可以继续说下去,但我认为上面的清单中有足够的货币价值。在我的头脑中,根本没有逻辑上的理由为什么还要继续使用它,因此我问他这背后的决定是什么was@MarkTwigg他在开玩笑<代码>折旧是一个货币术语,意思是它失去了价值
deprecate
是一个表示“表示不赞成”(即自嘲式幽默)的术语。你想要的术语是后者