Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP将复选框值插入MySQL数据库_Php_Mysql_Checkbox - Fatal编程技术网

使用PHP将复选框值插入MySQL数据库

使用PHP将复选框值插入MySQL数据库,php,mysql,checkbox,Php,Mysql,Checkbox,各位 我知道这是一个久远的话题,但我到处都找过了,无法解决它 我的网页中有一系列复选框,需要将这些值插入数据库 就我所读到的,应该这样做: <tr> <td class="titulofila">Sal&oacute;n Completo con: </td> <td> <table width="100%"><tr><td> <

各位

我知道这是一个久远的话题,但我到处都找过了,无法解决它

我的网页中有一系列复选框,需要将这些值插入数据库

就我所读到的,应该这样做:

<tr>
        <td class="titulofila">Sal&oacute;n Completo con: </td>
        <td>
        <table width="100%"><tr><td>
            <label>
            <input name="equipSalon[]" type="checkbox" id="equipSalon[]" value="mesa"  />
            mesas </label>
        </td><td>
            <label>
            <input name="equipSalon[]" type="checkbox" id="equipSalon[]" value="sillas"  />
            sillas </label>
        </td><td>
            <label>
            <input name="equipSalon[]" type="checkbox" id="equipSalon[]" value="sofa"  />
            sof&aacute;</label>
        </td></tr></table>
        </td>
    </tr>
我有更多的复选框,但这不起作用,只是说“您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,在第21行的“”附近使用正确的语法”

如果有人想查看完整的index.html和php文件,可以在这里查看:表单从第147行开始。以及此处的PHP文件:


提前感谢。

复选框只有勾选后才会过账。因此,如果未勾选该复选框,is将不会出现在
$\u POST
中。此外,通常不应为复选框提供任何值。而是使用名称来区分它们

在数据库中,我通常用Tinyint表示复选框,存储1表示选中,存储0表示未选中

// If your checkbox name is foo, this will convert it
// into a value that can be stored in the database
$foo = isset($_POST['foo']) ? 1 : 0;
还要注意,html要求ID是唯一的。因此,您不能有多个具有相同id的元素。您应该清理输入以防止sql注入。对数据库中的用户输入使用
mysql\u real\u escape\u string()

更新

主要问题是查询在最后一行缺少“
”。 查询应该如下所示

$query = "INSERT INTO markers (ciudad,
                        zona,address,name,
                        telefono,email,piso,
                        tipo,erasmus,nhabitaciones,
                        plazas,equipHabita,nbanos,
                        salon,cocina,electrodomesticos,
                        garaje,internet,calefaccion,
                        sexo,precio,superficie,otros,
                        fecha,lat,lng)
    VALUES ('{$_POST['ciudad']}','{$_POST['zona']}',
            '{$_POST['address']}','{$_POST['name']}','{$_POST['telefono']}',
            '{$_POST['email']}','{$_POST['piso']}','{$_POST['tipo']}',
            '{$_POST['erasmus']}','{$_POST['nhabitaciones']}',
            '{$_POST['plazas']}','{$equipHabitaF}',
            '{$_POST['nbanos']}','{$equipSalonF}',
            '{$equipCocinaF}','{$equipElectroF}','{$_POST['garaje']}',
            '{$_POST['internet']}','{$_POST['calefaccion']}',
            '{$_POST['sexo']}','{$_POST['precio']}',
            '{$_POST['superficie']}','{$_POST['otrosF']}',
            '{$_POST['fecha']}','{$_POST['lat']}',
            '{$_POST['lng']}')";
mysql_query($query, $link);

注意查询最后一行的结尾“
”。还请注意,在变量中创建这样的查询,允许您输出创建的查询,这样您就可以查看到底发送到MySQL的是什么,还可以在不同的环境中测试您的查询(即在phpmyadmin或任何其他数据库管理工具中)。

除非您应该删除ID属性。您只需要对name属性执行此操作。如果您确实想查看引擎盖下发生的事情,请转储POST变量:。。。然后使用ViewSource查看CommentsHanks中的调试以获得答案,但我正在尝试存储复选框的值,而不是它们是否被选中。我想用复选框的值创建一个字符串,并将它们存储到de MySQL数据库中。这可能吗?您可以在
$\u POST
中为选中的复选框获取适当的值,但如果未选中该复选框,则将永远不会发布该复选框。因此,您必须实现逻辑来查看哪些值已发布,并使用该逻辑来确定哪些值尚未发布。您应该更仔细地查看他发布的代码。他引用的是$_POST值,所以无论复选框是否选中,都不会有任何问题。@periklis,引用值是好的,但输入也需要转义以防止sql注入。我完全同意你的观点,但这与用户的问题有什么关系?
$query = "INSERT INTO markers (ciudad,
                        zona,address,name,
                        telefono,email,piso,
                        tipo,erasmus,nhabitaciones,
                        plazas,equipHabita,nbanos,
                        salon,cocina,electrodomesticos,
                        garaje,internet,calefaccion,
                        sexo,precio,superficie,otros,
                        fecha,lat,lng)
    VALUES ('{$_POST['ciudad']}','{$_POST['zona']}',
            '{$_POST['address']}','{$_POST['name']}','{$_POST['telefono']}',
            '{$_POST['email']}','{$_POST['piso']}','{$_POST['tipo']}',
            '{$_POST['erasmus']}','{$_POST['nhabitaciones']}',
            '{$_POST['plazas']}','{$equipHabitaF}',
            '{$_POST['nbanos']}','{$equipSalonF}',
            '{$equipCocinaF}','{$equipElectroF}','{$_POST['garaje']}',
            '{$_POST['internet']}','{$_POST['calefaccion']}',
            '{$_POST['sexo']}','{$_POST['precio']}',
            '{$_POST['superficie']}','{$_POST['otrosF']}',
            '{$_POST['fecha']}','{$_POST['lat']}',
            '{$_POST['lng']}')";
mysql_query($query, $link);