PHP/HTML表单到DB复选框验证


PHP/HTML form into DB checkbox validation

我试图写一个php代码有一个网页从表单插入信息到数据库。我已经设法有从表格中正确插入的信息在DB列,但当用户不选择"复选框"的所有四个项目,我得到以下错误消息,每个复选框项未选中。

"注意:未定义的索引:ESPANOL在C:'xampp'htdocs'PHP'index1f.php第66行"

有人告诉我"isset"这句话可能是解决办法,但我一直没能自己弄清楚。

HTML

<br>
Idiomas:<br>
ESPAÑOL:<INPUT type="checkbox" name="ESPANOL" value="s">
INGLES:<INPUT type="checkbox" name="INGLES" value="s"><br>
FRANCES:<INPUT type="checkbox" name="FRANCES" value="s">
PORTUGUES:<INPUT type="checkbox" name="PORTUGUES" value="s">
<br>

PHP

mysql_query("insert into alumnos2
(NOMBRE,APELLIDO,GENERO,ESTADO_CIVIL,ESTUDIOS,ESPANOL,INGLES,PORTUGUES,FRANCES,CLAVE)
    values('$_REQUEST[NOMBRE]','$_REQUEST[APELLIDO]','$_REQUEST[GENERO]','$_REQUEST[ESTADO_CIVIL    ]','$_REQUEST[ESTUDIOS]','$_REQUEST[ESPANOL]','$_REQUEST[INGLES]','$_REQUEST[PORTUGUES]','$_    REQUEST[FRANCES]','$_REQUEST[CLAVE]')",$x)

注意:信息无论如何都会插入到数据库中。

您的查询有很多列,使其难以阅读。我将把列名和值放在一个数组中,并用它来构造查询。这种方法还可以很容易地只填充一些值,而让其余的返回到默认值(如NULL):

$values = array();
if (isset ($_REQUEST['ESPANOL'])) {
  $values['ESPANOL'] = "''"; /* Indicating true */
}
if (isset ($_REQUEST['INGLES'])) {
  $values['INGLES'] = "''";
}
/* ... */
$col_string = implode (',', array_keys ($values));
$val_string = implode (',', $values);
$query = "INSERT INTO alumnos2 ($col_string) VALUES ($val_string)";

:

你不应该使用已弃用的mysql扩展名。使用 PDO mysqli