如果设置了一个日期而另一个日期未设置

时间:2013-03-17 19:22:17

标签: php mysql if-statement insert

您好我正在尝试比较以单独形式输入的日期,其中包含1个输入字段以输入就业历史名称和2个输入字段作为开始和结束日期。目前,我可以成功检查他们是否输入的日期高于下一个工作历史的开始日期。当用户当前正在工作时,我正在尝试让它工作,因此没有添加结束日期,它只会插入作业和开始日期。在下面的代码中,我已经强调了它的工作意义,但遗憾的是它没有。有人能搞清楚吗?提前致谢。

    if($_POST['job3'] !=""){
   $job3 = preg_replace('#[^a-z 0-9,è û é É ]#i', '', $_POST["job3"]);
   $start3 = $_POST["start3"];
   $end3 = $_POST["end3"];
   $unixstart3 = strtotime($start3);
   $unixend3 = strtotime($end3);

    if(isset($unixstart3) && !isset($unixend3)){ //This does not work how do i fix this
    $sqlx = "INSERT INTO employment(employer, start) VALUES('$job3', '$unixstart2')";
       $queryx = mysqli_query($db_conx, $sqlx) or die(mysqli_error($db_conx));
mysqli_close($db_conx);
    }
     else if($unixstart3>$unixend3)
      {
       echo "Your date is incorrect (JOB 3)";
      }

      else if($unixend3<$unixstart3)
      {
        echo "Your date is incorrect (JOB 3)";
          }
           else if($unixend2>$unixstart3)
  {
   echo "Your end date of JOB2 is more than the start date of JOB3";
 }

      else
      {
       $sql2 = "INSERT INTO employment(employer, start, end) VALUES('$job3',              '$unixstart2', '$unixend3')";
         $query2 = mysqli_query($db_conx, $sql2) or die(mysqli_error($db_conx));
      mysqli_close($db_conx);
         }
     }

2 个答案:

答案 0 :(得分:1)

请勿在if语句中使用isset(),而是尝试:if($unixstart3 && !$unixend3) 我希望这会有所帮助。

答案 1 :(得分:0)

通过使用三元运算符来确定是否实际设置了已发布的变量,而不是检查是否存在不确定存在的东西的strtotime:

$job3 = isset($_POST['job3']) ? $_POST['job3'] : false;
$start3 = isset($_POST['start3']) ? $_POST['start3'] : false;
$end3 = isset($_POST['end3']) ? $_POST['end3'] : false;

因此,您可以检查它们是否可以安全使用:

if($job3 && $start3 && end3)
{
    // Do your thing
}
else
{
    // Not allowed to do your thing
}

所以你不必做

if(isset($unixstart3) && !isset($unixend3))