Php 插入查询foreach循环故障

Php 插入查询foreach循环故障,php,mysql,loops,foreach,insert,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 ch

我不必担心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());
}
}
if($\u SERVER['REQUEST\u METHOD']=='POST'){//检查用户是否提交数据(POST)或只是加载页面(GET)
$error=false;
$required=array('uexam_id','usObject','uexam_date');//验证:首先检查所有必填字段是否为空。
foreach($字段所需){
如果(!isset($_POST[$field])| |为空($_POST[$field])){
$error=true;
打破
}
}
//如果字段为空,则显示错误
如果($error){
die(“所有必填字段!!!”;
}否则{
$InsertQuery=“插入到考试(考试id、科目、考试日期)值(“.”.mysql\u real\u escape\u字符串($\u POST[“uexam\u id”],$con)。“,”,“.mysql\u real\u escape\u字符串($\u POST[“usubject”],$con)。”,“.mysql\u real\u escape\u字符串($\u POST[“uexam\u date”,$con)。”;
$result=mysql\u query($InsertQuery,$con)或die('query Failure:'.mysql\u error());
}
}
我这里有一个肤浅的/美学的问题。 insert/update/delete查询工作正常,但是这个foreach循环似乎给我带来了麻烦。 每次我导航到此页面(examisud)时,都会出现错误“Allfieldrequired”。除了,实际上没有发生任何错误,它只是显示消息。由于某种原因,这在页面加载上。 此外,无论何时更新或删除,都会再次显示错误消息,但字段中的值会像预期的那样更新/删除。 这很奇怪,我希望有人能告诉我如何阻止这个循环只在我需要的时候出现,也就是当一个字段留空的时候??? 非常感谢您的帮助

试试这个:

每次加载页面时,您的条件都为真

删除此项:
if($\u服务器['REQUEST\u METHOD']=='POST')


使用此命令:
如果(!empty($\u POST))

只需调试它,查看哪个字段使$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;
    }
}

尝试将
if($\u服务器['REQUEST\u方法']='POST'){
更改为
if(!empty($\u POST)){
@ICanHasCheezburger不,那不起作用,很不幸的是完全一样的:/你的意思是你在页面加载或重新加载时看到了错误吗?如果加载,你能粘贴完整的页面代码吗?你确定这些值是否被插入到数据库中,因为我认为你的查询中存在问题,在VA之后的每个括号中都有$conLUES,这是不必要的。我的值是defo被放入数据库中。我在另一个窗口中打开phpmyadmin,并在每次查询后刷新以检查它,它工作正常。这就是屏幕上的回声:我是一个空字段,给你带来麻烦:需要uexam_idAll字段!!!返回到PHP表单,因此uexam_id给我带来麻烦ble莫名其妙地???这在页面加载时也出现了。那么这个字段:uexam\U id是空的。@user3473793您是在浏览器中打开这个页面吗?还是从另一个页面的表单发送到这个页面?请将您的第一个if从这个:
if($\u服务器['REQUEST\u方法']='POST')
更改为这个:
if(isset($\u POST)&&!空($_POST)){