插入查询foreach循环故障

时间:2014-03-31 07:41:22

标签: php mysql loops foreach insert

我不必担心mysql折旧,也不必担心SQL注入,只是个人项目

我的代码:

if ($_SERVER['REQUEST_METHOD'] == 'POST') { // check if the user submits data (POST) or just loads the page (GET)
$error = false;
$required = array('uexam_id', 'usubject', 'uexam_date'); //VALIDATION: first check all required fields are not empty.


foreach($required as $field) {
    if (!isset($_POST[$field]) || empty($_POST[$field])) {
        $error = true;
        break;
    }
}
//if a field was empty, show error
if ($error) {
    die("All fields required!!! <a href='examisud.php'> Back to PHP Form </a>");
} else {
    $InsertQuery = "INSERT INTO Exam (exam_id, subject, exam_date) VALUES ('".mysql_real_escape_string($_POST["uexam_id"], $con)."','".mysql_real_escape_string($_POST["usubject"], $con)."','".mysql_real_escape_string($_POST["uexam_date"], $con)."')";
    $result = mysql_query($InsertQuery, $con) or die('query Failure:'. mysql_error());
}
}

我这里有一个表面/美学问题。 插入/更新/删除查询工作正常但是这个foreach循环似乎给我带来了麻烦。 每次我导航到这个页面(examisud),我都会收到错误&#34;所有必填字段&#34;。除此之外,实际上并没有发生任何错误,它只是显示消息。由于某种原因,页面加载。 此外,每当我更新或删除时,错误消息都会再次显示,但字段中的值会按照预期更新/删除。 这很奇怪,我希望有人可以指出我阻止这个循环出现的方式只有在我需要它时,这是一个字段留空? 非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

试试这个:

每次在页面加载时,您的条件都会成立。

删除此内容:if ($_SERVER['REQUEST_METHOD'] == 'POST')

使用此:if (!empty($_POST))

答案 1 :(得分:0)

只需调试它以查看哪个字段使您的$ error等于true:

foreach($required as $field) {
    if (!isset($_POST[$field]) || empty($_POST[$field])) {
        $error = true;
        echo 'Im an empty field that causes you trouble: ' . $field;
        break;
    }
}