if字段为空或!empty运行查询,不显示空字段的错误


if fields empty or !empty run the query and dont display error for empty field

我在3个手风琴中有3个不同的形式,但查询是一个。if (!empty($_POST)这个查询,然后提交表单。但它显示了其他表单的错误,联机等等等等都是错误。它显示了空字段的此错误。

有没有办法为字段隐藏此错误消息?

if(!empty($_POST)){
        $sql = "
            INSERT INTO 
            leave_req
            (
              `lvm_type`,
              `lvm_do`,
              `lvm_db`,
              `lvm_td`,
              `lvc_type`,
              `lvc_do`,
              `lvc_db`,
              `lvc_td`,
              `lvo_type`,
              `lvo_do`,
              `lvo_db`,
              `lvo_td`,
              `lvn_type`,
              `lvn_do`,
              `lvn_db`,
              `lvn_td`,
              `lv_reason`,
              `lv_usign`,
              `lv_rsign`,
              `lv_asign`,
              `lv_sec`,
              `lv_ip`,
              `lv_cdate`
            )
            values
            (
                '".addData($_POST['altype'])."',
                '".addData($_POST['aleave1'])."',
                '".addData($_POST['aleave2'])."',
                '".addData($_POST['altotal'])."',
                '".addData($_POST['cltype'])."',
                '".addData($_POST['cleave1'])."',
                '".addData($_POST['cleave2'])."',
                '".addData($_POST['cltotal'])."',
                'null',
                'null',
                'null',
                'null',
                'null',
                'null',
                'null',
                'null',
                'null',
                'null',
                'null',
                'null',
                'null',
                '".$ip."',
                now()
            )";
         echo "message submitted successfully";
         } else {
         echo "check your form"; }

解决这个问题的一个好方法是将isset()与三元运算符结合使用。基本上,您的三元运算符将计算为给定值之一,即适当的$_POST字段或null。如果有一个设置的$_POST字段,它将成为查询的一部分,如果没有,则将使用null

<?php
if(!empty($_POST)){
    $sql = "
        INSERT INTO 
        leave_req
        (
          `lvm_type`,
          `lvm_do`,
          `lvm_db`,
          `lvm_td`,
          `lvc_type`,
          `lvc_do`,
          `lvc_db`,
          `lvc_td`,
          `lvo_type`,
          `lvo_do`,
          `lvo_db`,
          `lvo_td`,
          `lvn_type`,
          `lvn_do`,
          `lvn_db`,
          `lvn_td`,
          `lv_reason`,
          `lv_usign`,
          `lv_rsign`,
          `lv_asign`,
          `lv_sec`,
          `lv_ip`,
          `lv_cdate`
        )
        values
        (
            '" . (isset($_POST['altype']) ? addData($_POST['altype']) : 'null') . "',
            '" . (isset($_POST['aleave1']) ? addData($_POST['aleave1']) : 'null') . "',
            '" . (isset($_POST['aleave2']) ? addData($_POST['aleave2']) : 'null') . "',
            '" . (isset($_POST['altotal']) ? addData($_POST['altotal']) : 'null') . "',
            '" . (isset($_POST['cltype']) ? addData($_POST['cltype']) : 'null') . "',
            '" . (isset($_POST['cleave1']) ? addData($_POST['cleave1']) : 'null') . "',
            '" . (isset($_POST['cleave2']) ? addData($_POST['cleave2']) : 'null') . "',
            '" . (isset($_POST['cltotal']) ? addData($_POST['cltotal']) : 'null') . "',
            'null',
            'null',
            'null',
            'null',
            'null',
            'null',
            'null',
            'null',
            'null',
            'null',
            'null',
            'null',
            'null',
            '".$ip."',
            now()
        )";
        echo "message submitted successfully";
 } else {
    echo "check your form"; }
 ?>

尝试这个

if (isset($_POST['form1']) or
    isset($_POST['form2']) or
    isset($_POST['form3']) )
{
    ...
}