PHP表单未正确更新SQL数据库

PHP表单未正确更新SQL数据库,php,javascript,mysql,sql,html,Php,Javascript,Mysql,Sql,Html,我一直在为一个我一直在建设的婚礼网站做一个定制的婚礼礼物登记处,有一段时间它似乎工作得很好,但现在它似乎不工作,我不知道为什么 礼品登记处的工作方式如下: 它使用基于mysql数据库更新的动态表;以及 一种html表单,用户在其中输入“礼物选择”,并使用php更新mysql数据库,使礼物的状态变为不可用(这反映在表中) 代码最初会更新动态表并刷新页面,这样用户就可以看到他们选择的礼物现在已被“接受”(刷新很重要,因为否则表内容将不会被更新)。现在发生的情况是,当用户填写表单并单击submit时

我一直在为一个我一直在建设的婚礼网站做一个定制的婚礼礼物登记处,有一段时间它似乎工作得很好,但现在它似乎不工作,我不知道为什么

礼品登记处的工作方式如下:

  • 它使用基于mysql数据库更新的动态表;以及
  • 一种html表单,用户在其中输入“礼物选择”,并使用php更新mysql数据库,使礼物的状态变为不可用(这反映在表中)
  • 代码最初会更新动态表并刷新页面,这样用户就可以看到他们选择的礼物现在已被“接受”(刷新很重要,因为否则表内容将不会被更新)。现在发生的情况是,当用户填写表单并单击submit时,表单条目似乎没有输入到数据库中

    这是一个完整的黑客代码,在此之前我从未使用过php、sql或javascript(我曾涉猎过一点html),所以我自然觉得自己有点迷路了。。

    有人知道我哪里出错了吗

    我将感谢任何人能给予的帮助


    代码如下:

    下面构建了动态表

    <?php
    echo"<thead>
    <tr>
    <th>Gift</th>  
    <th>Price</th>
    <th>Where to buy</th> 
    <th>Availability</>
    </tr>
    </thead>";
    
    $dbc = mysqli_connect('localhost','XXXXX','XXXXX','XXXXX_giftregistry') or die('Error connecting to MYSQL server.');
            $results = mysqli_query($dbc,"SELECT gift_name, price, where_to_buy, status FROM gift_reg");
    
            while($row = mysqli_fetch_array($results)) {
            ?>
                <tr>
                    <td><?php echo $row['gift_name']?></td>
                    <td><?php echo $row['price']?></td>
                    <td><?php echo $row['where_to_buy']?></td>
                    <td><?php echo $row['status']?></td>
                </tr>
    
            <?php
            }
            ?>
    
            </table>
    
    
    
    下一部分是表单提交代码

    <?php
    $person_gifting = $_POST['name'];
    $status = $_POST['status'];
    $gift_name = $_POST['gift_name'];
    
    if ($_POST['submit']) {
    $dbc = mysqli_connect('localhost','XXXXXX','XXXXXX','XXXXX_giftregistry') or die('Error connecting to MYSQL server.');
    mysqli_query($dbc,"UPDATE gift_reg SET person_gifting = '$person_gifting' WHERE gift_name = '$gift_name'") or die ('Error querying database.');
    mysqli_query($dbc,"UPDATE gift_reg SET status = '$status' WHERE gift_name = '$gift_name'") or die ('Error querying database.');
    mysqli_close($dbc);
    echo "<script> formSubmit()</script>";
    }
    
    尝试更改

    while($nt=mysqli_fetch_array($result)){
        echo "<option value=$nt[gift_name]>$nt[gift_name]</option>";
    }
    
    while($nt=mysqli\u fetch\u数组($result)){
    回音“$nt[礼物名称]”;
    }
    

    while($nt=mysqli\u fetch\u数组($result)){
    回音“{$nt['gift_name']}”;
    }
    
    这样做的原因是:

    a) 将数组元素引用为$nt[giftname]与$nt['giftname']不同,前者查找键等于被调用的'giftname'值的数组元素,后者查找键为'giftname'的数组元素


    b) 根据您使用的文档类型,您应该使用value=“value”而不是value=value

    在我看来,您是在重新加载页面,而不是提交表单不是您所要求的,而是。我可能遗漏了一些内容,但“现在不起作用”是什么?是否有一些错误消息?错误或没有插入数据?服务器崩溃?还有什么?在编写更多SQL接口代码之前,请仔细阅读如何正确使用将数据添加到查询中。你在这里所做的创造了巨大的成功,因为你没有。承认你不知道自己在做什么没关系。下一步是学习如何正确操作。对不起,应该更清楚。参考更新后的帖子。不确定你为什么被否决,因为这是有效的。谢谢你帮助我!可能是因为我没有对它的工作原理做太多解释,请参见编辑。别担心!
    <script>
    function formSubmit() {
    window.location.reload();
    }
    </script>
    
    while($nt=mysqli_fetch_array($result)){
        echo "<option value=$nt[gift_name]>$nt[gift_name]</option>";
    }
    
    while($nt=mysqli_fetch_array($result)){
        echo "<option value=\"{$nt['gift_name']}\">{$nt['gift_name']}</option>";
    }