大家。
我知道这是一个受到很好影响的主题,但我到处寻找并且无法解决它。
我的网页上有一系列复选框,需要将值插入数据库。
对于我所读过的内容,应该这样做:
<tr>
<td class="titulofila">Saló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á</label>
</td></tr></table>
</td>
</tr>
然后,在提交按钮所用的PHP脚本中:
$equipSalonF=mysql_real_escape_string(implode(',', $_POST['equipSalon']));
mysql_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']}'",$link);
我有更多这个复选框,这不起作用,只是说“你的SQL语法有错误;请查看与你的MySQL服务器版本对应的手册,以便在第21行使用正确的语法” “
如果有人想查看完整的index.html和php文件,可以在这里找到它们:http://paste.ideaslabs.com/show/8qEHDnsZdr表单从第147行开始。这里的PHP文件:http://paste.ideaslabs.com/show/IJFLSHM7Ka
提前致谢。
答案 0 :(得分:2)
复选框仅在勾选时发布。因此,如果未选中该复选框,则$_POST
中不会显示该复选框。此外,您通常不应给复选框任何值。而是使用名称来区分它们。
在数据库中,我通常表示带有tinyints的复选框,并且存储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_real_escape_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或任何其他数据库管理中)工具)。