使用$ _POST将数据插入数据库

时间:2017-06-18 12:51:28

标签: php mysql web-applications

我正在尝试使用php制作一个webapp。在那个应用程序中,我需要创建批处理,批处理主题等。我已经完成了这个应用程序的主要部分。它正在工作,但我正在发出错误通知,如:

Notice: Undefined index: currentBatchId in C:\wamp64\www\sp\addBatchSubject.php on line 4 

我已经从" batchview.php"传递了批处理ID使用以下代码添加批次主题的页面:

<a href="addBatchSubject.php?currentBatchId=<?php echo $s['batchId']; ?>">Add Subject</a>

使用以下代码:

$currentBatchId=$_GET['currentBatchId'];

我可以收到该值,并且可以在此页面中显示任何问题。但是我希望使用以下代码将一些数据添加到数据库中:

if(isset($_POST['add']))

当我按[add]按钮时,它会生成错误通知,但数据已成功插入数据库。现在我想删除错误。 怎么了?当数据插入代码将数据发布到数据库时,$ _GET是否尝试获取另一个值? NB:$ _GET&amp; $ _POST在同一页面。

1 个答案:

答案 0 :(得分:0)

如果我正确地关注你,我认为你需要改变代码的顺序..

<?php

if(isset($_POST['add'])) {
    // handle adding new
    // make sure to header("Location: xxx.php"); to remove post data
    exit(); // because we don't need to continue
}

if(isset($_GET['currentBatchId'])) {
    $currentBatchId=$_GET['currentBatchId'];
}

// then maybe you also need to handle the no post / get request
if(!isset($_POST['add']) && !isset($_GET['currentBatchId'])) {
    // handle this case
    // maybe header("Location: blah.php");
    // maybe exit(); here too because we don't have enough information to render the page
}

希望有意义