“a”中的日期比较;for loop";在php中

“a”中的日期比较;for loop";在php中,php,Php,我有一组包含五个字段的行。我的要求是,如果任何行中的“内部截止日期”字段大于“客户截止日期”,则它必须显示一个警告,说明“内部截止日期不应大于客户截止日期”。现在它只检查第一行。我需要检查所有的行。谢谢 <?php for( $i = 1; $i <= 100; $i++ ) { $task = $_POST['task'.$i]; $Description = $_POST['Description'.$i]; $Internal_Deadline = $

我有一组包含五个字段的行。我的要求是,如果任何行中的“内部截止日期”字段大于“客户截止日期”,则它必须显示一个警告,说明“内部截止日期不应大于客户截止日期”。现在它只检查第一行。我需要检查所有的行。谢谢

<?php

for( $i = 1; $i <= 100; $i++ )
{
    $task = $_POST['task'.$i];
    $Description = $_POST['Description'.$i];
    $Internal_Deadline = $_POST['Internal_Deadline'.$i];
    $Client_Deadline = $_POST['Client_Deadline'.$i];
    $Actual_Deadline = $_POST['Actual_Deadline'.$i];

    if(strtotime($Internal_Deadline) > strtotime($Client_Deadline)){

        ?>
        <script>alert('Internal Deadline should not be greater than Client Deadline');</script>
        <?php
    }
    else{    

        $result_task=mysql_query("select * from project_plan where p_id='$p_id' and task_no='$i'", $dbconnect1);   
        $row_task=mysql_fetch_array($result_task);
        $id=$row_task['id'];

        if(mysql_num_rows($result_task)!=0){
            $update_result=mysql_query("update project_plan set Task='$task',Description='$Description',Internal_Deadline='$Internal_Deadline',Client_Deadline='$Client_Deadline',Actual_Deadline='$Actual_Deadline' where id='$id'", $dbconnect1);
        }
        else{  
            if($task!=""){
                $que = mysql_query("insert INTO project_plan(task_no,Task,Description,Internal_Deadline,Client_Deadline,Actual_Deadline,Created_Date,p_id) VALUES ('".$i."','".$task."','".$Description."','".$Internal_Deadline."','".$Client_Deadline."','".$Actual_Deadline."','".$current_date."','".$p_id."')", $dbconnect1);
            }
        }
    }
}

警报(“内部截止日期不应大于客户截止日期”);

首先,for循环的长度不正确

您需要在post数据计数的相同时间运行此循环

第二,我已经在本地尝试使用您的给定数据(在您的评论中)。似乎不符合以下条件:

  if(strtotime($Internal_Deadline) > strtotime($Client_Deadline)){
试着这样做:
它将跳过不必要的循环。如果在post数据中设置了task1、task2、task3,那么它将运行3次而不是100次

$i=1;
while(isset($_POST['task'.$i]))
{
    $task = $_POST['task'.$i];
    $Description = $_POST['Description'.$i];
    $Internal_Deadline = $_POST['Internal_Deadline'.$i];
    $Client_Deadline = $_POST['Client_Deadline'.$i];
    $Actual_Deadline = $_POST['Actual_Deadline'.$i];

    if(strtotime($Internal_Deadline) > strtotime($Client_Deadline)){

        ?>
        <script>alert('Internal Deadline should not be greater than Client Deadline');</script>
    <?php
    }
    else{

        $result_task=mysql_query("select * from project_plan where p_id='$p_id' and task_no='$i'", $dbconnect1);
        $row_task=mysql_fetch_array($result_task);
        $id=$row_task['id'];

        if(mysql_num_rows($result_task)!=0){
            $update_result=mysql_query("update project_plan set Task='$task',Description='$Description',Internal_Deadline='$Internal_Deadline',Client_Deadline='$Client_Deadline',Actual_Deadline='$Actual_Deadline' where id='$id'", $dbconnect1);
        }
        else{
            if($task!=""){
                $que = mysql_query("insert INTO project_plan(task_no,Task,Description,Internal_Deadline,Client_Deadline,Actual_Deadline,Created_Date,p_id) VALUES ('".$i."','".$task."','".$Description."','".$Internal_Deadline."','".$Client_Deadline."','".$Actual_Deadline."','".$current_date."','".$p_id."')", $dbconnect1);
            }
        }
    }
    $i =$i +1;
}
$i=1;
while(isset($\u POST['task'.$i]))
{
$task=$_POST['task'.$i];
$Description=$\u POST['Description'.$i];
$Internal\u Deadline=$\u POST['Internal\u Deadline.$i];
$Client\u Deadline=$\u POST['Client\u Deadline.$i];
$Actual_Deadline=$_POST['Actual_Deadline.$i];
if(标准时间($Internal_Deadline)>标准时间($Client_Deadline)){
?>
警报(“内部截止日期不应大于客户截止日期”);

缩进是你的朋友通过在循环中打印来测试你的$POST变量是的,它只显示第一行添加
print\r($POST);
Array([task2]=>test1[Description2]=>[Internal\u Deadline2]=>2014年2月25日[Client\u Deadline2]=>2014年2月28日[Actual\u Deadline2]=>[task1]=>test[Description1]=>[Internal\u Deadline1]=>2014年5月2日【客户死亡线1】=>2014年10月2日【实际死亡线1】=>【项目】=>3【任务3】=>test3【说明3】=>【内部死亡线3】=>2014年2月26日【客户死亡线3】=>2014年3月3日【实际死亡线3】=>【提交】=>您好,谢谢您的回复。我已经尝试过这段代码,但当我在中输入更大的日期时,它不会显示警报“内部\u截止日期”比“客户\u截止日期”要短。@用户3317777:我已经测试过了,它工作得很好。您能提供您测试过的数据吗?我在“内部\u截止日期2”字段中选择了“2014年2月25日”,在“客户\u截止日期2”字段中选择了“2014年2月22日”,当我单击“提交”时,它会插入数据库中。如果“内部\u截止日期”大于客户_截止日期”表示必须显示警报。请检查第二个现场程序输出:2014年2月28日小于2014年2月25日-Incorrect@user3317777你查过了吗?