如果字段为空,如何忽略?

时间:2020-08-13 作者:Israel Santiago

我是php新手,有一个简单的问题,我正在开发一个插件,在元盒中我有一个将数据保存到数据库的函数,这是我用来保存的代码:

 $models_to_insert = array();
    for ($i = 1; $i <= 3; $i++) {
        if (isset($_POST["car_model_$i"]) != "") {
            $car_model = sanitize_text_field($_POST["car_model_$i"]);
        }
        if (isset($_POST["car_price_$i"]) != "") {
            $car_price = sanitize_text_field($_POST["car_price_$i"]);
        }
        if (isset($_POST["car_brand_$i"]) != "") {
            $car_brand = sanitize_text_field($_POST["car_brand_$i"]);
        }
        if (isset($_POST["car_year_$i"]) != "") {
            $car_year = sanitize_text_field($_POST["car_year_$i"]);
        }
        if (isset($_POST["car_type_$i"]) != "") {
            $car_type = sanitize_text_field($_POST["car_type_$i"]);
        }
        if (isset($_POST["car_basefee_$i"]) != "") {
            $car_basefee = sanitize_text_field($_POST["car_basefee_$i"]);
        }
        if (isset($_POST["car_basemodel_$i"]) != "") {
            $car_basemodel = sanitize_text_field($_POST["car_basemodel_$i"]);
        }
        if (isset($_POST["car_rcusa_$i"]) != "") {
            $car_rcusa = sanitize_text_field($_POST["car_rcusa_$i"]);
        }
        if (isset($_POST["car_bono_$i"]) != "") {
            $car_bono = 1;
        } else {
            $car_bono = 0;
        }

        $single_model = array(
            \'post_id\' => $post_id,
            \'car_model\' => $car_model,
            \'car_price\' => $car_price,
            \'car_brand\' => $car_brand,
            \'car_year\' => $car_year,
            \'car_type\' => $car_type,
            \'car_basefee\' => $car_basefee,
            \'car_basemodel\' => $car_basemodel,
            \'car_rcusa\' => $car_rcusa,
            \'car_bono\' => $car_bono
        );
        array_push($models_to_insert, $single_model);
    }

    if (cotizador_query_select($post_id) == null) {
        foreach($models_to_insert as $model){
            $wpdb->insert($table_name, $model);
        }
    } else {
        $wpdb->delete($table_name, array(\'post_id\' => $post_id));
        foreach($models_to_insert as $model){
            $wpdb->insert($table_name, $model);
        }

    }
for计数一直到3,因为我有3倍于3款车型的输入:

enter image description here

但如果我只填充第一个模型,而将其他输入留空,则数据库中会有3条记录,其中有空字段,而不是只有一条记录,因为只填充了一个模型:

enter image description here

我怎么能忽略其余未填充的输入??

1 个回复
SO网友:Israel Santiago

我找到了一个解决方案,它很有效,以防有人有同样的问题,我知道答案可能是:

if(input==""){

}
但问题是,我在对象中插入每个模型,因此如果字段为空,它会在对象中插入空值,所以我只是这样做:

if ($single_model[\'car_model\'] != "") {
array_push($models_to_insert, $single_model);
} else {}
因为如果在第一次输入中没有添加模型名称,并且用户单击;更新(&Q);或“或”;“发布”;按钮,表示用户不想要/不需要其他型号

不确定这是否是最好的方法,但它确实有效

相关推荐

MAMP上的Live to Local,不工作,正在输出函数。php代码

这是一个较旧的自定义主题。在live server上,我更新了WP的最新版本,更新了包括ACF在内的所有插件。下载了所有文件、DB并重命名为本地URL。我已经在各种构建中多次这样做,从来没有遇到过问题。运行MAMP时,浏览器将从函数中输出PHP代码。php文件。不是标题或任何CSS,我看到HTML在此之后正在加载。也无法访问/wp admin,结果相同。在live server 7.3.11上运行的PHP,在MAMP上最接近的是7.39有什么建议吗?我不是最初的主题开发人员。这太令人恼火了,因为我只需要重