如果没有条件语句发生,则执行INSERT

时间:2015-05-25 17:29:43

标签: php loops if-statement

我有一个PHP文件,用于检查是否已经在DB上创建了通过$ _POST提供的3个可能单词中的任何一个。

如果任何DB记录中存在任何这些单词,则会回显错误。

如果任何DB记录中都不存在这些词,则它会执行INSERT查询。

此代码正确检查3个给定单词(如果给定)中的任何一个是否存在,如果存在,则错误得到正确回显。但如果没有这些,网站只是冻结,没有插入。

如果所有IF语句都为假,我怎么能要求PHP运行INSERT查询(现在放在ELSE语句中的内容)?

    $ca_key1 = $_POST['ca_key1'];
    $ca_key2 = $_POST['ca_key2'];
    $ca_key3 = $_POST['ca_key3'];

    if ($ca_key1!=="" || $ca_key2!=="" || $ca_key3!==""){

        $selectKeys = mysqli_query($con, "SELECT ca_key1,ca_key2,ca_key3 FROM ws_campaigns WHERE ca_fk_us_id='$id'");

        if ($ca_key1!==""){            
            while($registroKeys = mysqli_fetch_array($selectKeys)){
               if ($registroKeys['ca_key1']===$ca_key1 || $registroKeys['ca_key2']===$ca_key1 || $registroKeys['ca_key3']===$ca_key1){
                   echo "No se ha creado la campaña. La palabra ".$ca_key1." ya está siendo utilizada en una campaña previa.";
               } 
            }      
        }

        else if ($ca_key2!==""){
            while($registroKeys = mysqli_fetch_array($selectKeys)){
               if ($registroKeys['ca_key1']===$ca_key2 || $registroKeys['ca_key2']===$ca_key2 || $registroKeys['ca_key3']===$ca_key2){
                   echo "No se ha creado la campaña. La palabra '".$ca_key2."' ya está siendo utilizada en una campaña previa.";
               } 
            }      
        } 

        else if ($ca_key3!==""){
            while($registroKeys = mysqli_fetch_array($selectKeys)){
               if ($registroKeys['ca_key1']===$ca_key3 || $registroKeys['ca_key2']===$ca_key3 || $registroKeys['ca_key3']===$ca_key3){
                   echo "No se ha creado la campaña. La palabra '".$ca_key3."' ya está siendo utilizada en una campaña previa.";
               } 
            }      
        } 

        else{
            //DEVOLUCIÓN ID CAMPAÑA
            if ($result = $con->query("INSERT INTO ws_campaigns (ca_id, ca_name, ca_content, ca_fk_us_id, ca_img, ca_prefix,ca_key1,ca_key2,ca_key3) VALUES ('','$ca_title', '$ca_content','$id','$ca_img','$ca_prefix','$ca_key1','$ca_key2','$ca_key3')")) {
                 echo $con->insert_id;
              }
        }


    }

    else{
        //DEVOLUCIÓN ID CAMPAÑA
        if ($result = $con->query("INSERT INTO ws_campaigns (ca_id, ca_name, ca_content, ca_fk_us_id, ca_img, ca_prefix,ca_key1,ca_key2,ca_key3) VALUES ('','$ca_title', '$ca_content','$id','$ca_img','$ca_prefix','$ca_key1','$ca_key2','$ca_key3')")) {
           echo $con->insert_id;
        }
    }

3 个答案:

答案 0 :(得分:0)

我的建议是让另一个else if作为支票

else if(empty($ca_key3) && empty($ca_key2) && empty($ca_key1))
{

}

明确确保

答案 1 :(得分:0)

检查执行查询时结果会发生什么:

$result = mysqli_query(...);
if (!$result) {
    die('error: ' . mysql_error());
}

它可能会失败,错误信息会告诉你原因。

答案 2 :(得分:0)

最后,正如Fred -ii-所提到的那样,解决这个问题的方法是创建单个INSERT查询,组合AND,OR以便对数据库进行单一检查。

这种方式正确解决了问题:

var path = require('path');
if( ! path.isAbsolute(myPath)) {
    //...
}
相关问题