我正在尝试编写一段 PHP 代码,让网页将信息从 FORM 插入到数据库中。 我已设法将表单中的信息正确插入到数据库列中,但是当用户没有选择“复选框”的所有四个项目时,对于每个未选择的复选框项目,我都会收到以下错误消息。
“注意:未定义索引:ESPAOL 位于 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)";
另外:
关于PHP/HTML 表单进入数据库复选框验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24600899/