我试图编写一个php代码,让网页将信息从FORM插入数据库。 我已经设法将表单中的信息正确插入到DB列中,但是当用户没有选择"复选框的所有四个项目时#34;对于未选中的每个复选框项,我收到以下错误消息。
"注意:未定义的索引:第66和34行的C:\ xampp \ htdocs \ PHP \ index1f.php中的ESPANOL;
我被告知" 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)
注意:无论如何,信息都会插入到数据库中。
答案 0 :(得分:0)
您的查询有很多列,使其难以阅读。我会将列名和值放在一个数组中,并使用它来构造查询。这种方法也可以很容易地只填充一些值,并让其余的值回到默认值(例如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)";
: