php - 通过 PHP 更新 MySQL 数据时出错

标签 php mysql

我尝试使用复选框来更新数据。但是,当一个或多个复选框未选中时,会返回一条通知:

注意:未定义索引:E:\wamp\www\HOSPITAL\update.php 第 12 行中的 stats2

注意:未定义索引:E:\wamp\www\HOSPITAL\update.php 第 12 行中的 stats3

注意:未定义索引:E:\wamp\www\HOSPITAL\update.php 第 12 行中的 stats5

<?php
    $con = mysql_connect("localhost","root","");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }

    mysql_select_db("Hospital", $con);




       mysql_query("UPDATE t2 SET HOSPNUM ='$_POST[hnum]', ROOMNUM='$_POST[rnum]', ADDATE= '$_POST[ad8]', ADTIME='$_POST[adtym]', LASTNAME='$_POST[lname]', FIRSTNAME='$_POST[fname]', MIDNAME='$_POST[mname]', CSTAT='$_POST[cs]', AGE='$_POST[age]', BDAY='$_POST[bday]', ADDRESS='$_POST[ad]', SEX='$_POST[sex]', 
                                                                                                                                                                                                                                                                                                               STAT='$_POST[stats1]', STAT2='$_POST[stats2]', STAT3='$_POST[stats3]', STAT4='$_POST[stats4]', STAT5='$_POST[stats5]', STAT6='$_POST[stats6]', STAT7='$_POST[stats8]', STAT8='$_POST[stats8]', NURSE='$_POST[nurse]'              
        WHERE TELNUM ='$_POST[telnum]'");



    mysql_close($con)
    ?>

你能帮我一下,这样通知就不会显示了吗?

最佳答案

这是复选框的定义行为 - 仅当设置时它们才会包含在表单数据中。

您应该使用 isset() 来确定复选框是否被选中。

更改为

STAT='".isset($_POST['stats1']).", 
STAT2='".isset($_POST['stats2']).", 
STAT3='".isset($_POST['stats3']).", 
STAT4='".isset($_POST['stats4']).",  
STAT5='".isset($_POST['stats5']).", 
STAT6='".isset($_POST['stats6']).", 
STAT7='".isset($_POST['stats8']).", 
STAT8='".isset($_POST['stats8'])." 

另一个有效的解决方法是在复选框之前添加一个具有相同名称的隐藏变量:例如

<form action='t1.php' method='post'>
<input type='hidden' name="cb1" value="0">
<input type='checkbox' name="cb1" title='test'>
<input type='submit'  >
</form>
<?php 
print_r($_POST);
?>

关于php - 通过 PHP 更新 MySQL 数据时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2295185/

相关文章:

php - 多个ajax请求,只有一个插入数据库?

php - 在 php 和数据库中创建登录和注销 session

php - Paypal 订阅问题

php - 反转输出顺序

php - 带有日期的数据库字段保持为空

mysql - 使用 MySQL 聚合重叠事件

java - 如何使用 java 从数据库中获取值并将其存储在现有的 excel 文件中?

javascript - 将表单中的输入解析到下一页的最佳实践

php - 计算flv视频文件长度?使用纯 PHP

mysql - 使用 2 个游标,一个为另一个获取参数