Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在mysql数据库中更新html复选框时出现问题_Php_Mysql_Html - Fatal编程技术网

Php 在mysql数据库中更新html复选框时出现问题

Php 在mysql数据库中更新html复选框时出现问题,php,mysql,html,Php,Mysql,Html,这是我的代码,我不知道为什么当我尝试更新mysql数据库时复选框没有更新。仅更新输入框 <tr> <td><font size="3"></td> <td></td> <input type='hidden' name="stats6" value="0"> <td><input name="stats6" type="checkbox" id="dep" value="<?php

这是我的代码,我不知道为什么当我尝试更新mysql数据库时复选框没有更新。仅更新输入框

   <tr>
<td><font size="3"></td>
<td></td>
<input type='hidden' name="stats6" value="0">
<td><input name="stats6" type="checkbox" id="dep" value="<?php echo $row["STAT6"]; ?>" <?php echo $row["STAT6"] ? 'checked="checked"' : ''; ?> >Dependent</td>
<td><font size="3"></td>
<td></td>
<input type='hidden' name="stats7" value="0">
<td><input name="stats7" type="checkbox" id="emp" value="<?php echo $row["STAT7"]; ?>" <?php echo $row["STAT7"] ? 'checked="checked"' : ''; ?> >Employee</td>
<td><font size="3"></td>
<td></td>
<input type='hidden' name="stats8" value="0">
<td><input name="stats8" type="text" id="" value="<?php echo $row["STAT8"]; ?>" maxlength="15">Others</td>

我的代码可能有什么问题?它不会真正更新复选框中的数据。当我尝试搜索它时,它的所有零可能是每个复选框的隐藏输入需要在它的标记后面。我不记得PHP如何处理重复项,但这可能是问题所在

但是,另一个注意事项。
我希望代码只是一个例子,您应该永远不要将输入的数据直接放入数据库,而不事先对其进行清理和验证。这样做将打开SQL注入的可能性。

首先,建议使用$\u POST[“hnum”]而不是$\u POST[hnum]。我猜这是个打字错误


这才是真正的问题。复选框值仅在选中时设置。如果未选中它们,则不会有类似$_POST[“hnum”]的值。也许这是你问题的一部分。

你有很多问题。以下是一些关键问题:

  • 您的HTML无效。在表单元格之间有
    元素。使用一个


  • 您有多个相同名称的输入(
    您的Html是正确的,问题在于您的SQL

    我刚刚对你的问题做了更正,试试看

    $sql = "UPDATE t2 SET ";
    $sql .= "HOSPNUM ='".$_POST['hnum']."', ";
    $sql .= "ROOMNUM    ='".$_POST['rnum']."', ";
    $sql .= "ADATE      ='".$_POST['adate']."', ";
    $sql .= "ADTIME     ='".$_POST['adtime']."', ";
    $sql .= "LASTNAME   ='".$_POST['lname']."', ";
    $sql .= "FIRSTNAME  ='".$_POST['fname']."', ";
    $sql .= "MIDNAME    ='".$_POST['mname']."', ";
    $sql .= "CSTAT      ='".$_POST['cs']."', ";
    $sql .= "AGE        ='".$_POST['age']."', ";
    $sql .= "BDAY       ='".$_POST['bday']."', ";
    $sql .= "ADDRESS    ='".$_POST['ad']."', ";
    $sql .= "SEX        ='".$_POST['sex']."', ";
    $sql .= "STAT       ='".$_POST['stats1']."', ";
    $sql .= "STAT2      ='".$_POST['stats2']."', ";
    $sql .= "STAT3      ='".$_POST['stats3']."', ";
    $sql .= "STAT4      ='".$_POST['stats4']."', ";
    $sql .= "STAT5      ='".$_POST['stats5']."', ";
    $sql .= "STAT6      ='".$_POST['stats6']."', ";
    $sql .= "STAT7      ='".$_POST['stats7']."', ";
    $sql .= "STAT8      ='".$_POST['stats8']."', ";
    $sql .= "NURSE      ='".$_POST['nurse']."'";
    $sql .= "WHERE PNUM ='".$_POST['pnum']."'";
    
    mysql_query($sql);
    
    您忘记在post值中添加“'”

    例如,您有
    $\u POST[stats1]
    ,它应该是
    $\u POST['stats1']


    试试看

    您有一个SQL注入漏洞。HTML不正确,并且您的SQL有主要的SQL注入漏洞。
    $sql = "UPDATE t2 SET ";
    $sql .= "HOSPNUM ='".$_POST['hnum']."', ";
    $sql .= "ROOMNUM    ='".$_POST['rnum']."', ";
    $sql .= "ADATE      ='".$_POST['adate']."', ";
    $sql .= "ADTIME     ='".$_POST['adtime']."', ";
    $sql .= "LASTNAME   ='".$_POST['lname']."', ";
    $sql .= "FIRSTNAME  ='".$_POST['fname']."', ";
    $sql .= "MIDNAME    ='".$_POST['mname']."', ";
    $sql .= "CSTAT      ='".$_POST['cs']."', ";
    $sql .= "AGE        ='".$_POST['age']."', ";
    $sql .= "BDAY       ='".$_POST['bday']."', ";
    $sql .= "ADDRESS    ='".$_POST['ad']."', ";
    $sql .= "SEX        ='".$_POST['sex']."', ";
    $sql .= "STAT       ='".$_POST['stats1']."', ";
    $sql .= "STAT2      ='".$_POST['stats2']."', ";
    $sql .= "STAT3      ='".$_POST['stats3']."', ";
    $sql .= "STAT4      ='".$_POST['stats4']."', ";
    $sql .= "STAT5      ='".$_POST['stats5']."', ";
    $sql .= "STAT6      ='".$_POST['stats6']."', ";
    $sql .= "STAT7      ='".$_POST['stats7']."', ";
    $sql .= "STAT8      ='".$_POST['stats8']."', ";
    $sql .= "NURSE      ='".$_POST['nurse']."'";
    $sql .= "WHERE PNUM ='".$_POST['pnum']."'";
    
    mysql_query($sql);