将“检查信息”组合在一个循环 php 中


Combine 'check information(s)' in a loop php

我需要将检查信息组合在一个循环中,但遇到错误。单个检查信息就可以了(请参阅以下设置代码)。

首先:这将检查各种检查信息:

  1. $checkGeneral
  2. $checkProduct

    foreach($resultCatAdd as &$value) {
        if($value == "General Information") {
            $checkGeneral = true;
        } elseif ($value == "Product Information") {
            $checkProduct = true;
        } 
    }
    

在这里,我调用我需要执行的主 SQL:

$SQL = "SELECT *
        FROM einv_asset 
        WHERE einv_asset_stockrm  = '" . $code . "';
";

此编码是检查信息是真还是假(直接到另一个函数)并执行添加函数

$get_einv_asset_stockrm_SQL = base_executeSQL($SQL);
    while($General_row = base_fetch_array($get_einv_asset_stockrm_SQL))
    if (base_num_rows($get_einv_asset_stockrm_SQL)!= 0)
    {
        // General Information category
        if ($checkGeneral == true) {
            if(einv_editStockrm2($General_row['einv_asset_code'],"General"))
            {   
                $addGeneralSQL="INSERT INTO einv_general_information (einv_ginfo_status,einv_ginfo_remark,einv_ginfo_aid)
                    VALUES ('" . $status . "','" . base_addSlashSQL($remark) . "','" . $General_row['einv_asset_code'] . "')";
                //echo $getGeneralSQL;
                //Check and execute query
                if(!base_executeSQL($addGeneralSQL)) {
                    $continue = false;
                    echo $addGeneralSQL;
                }else { $continue = true; }
            }
        } 

然后,当检查信息为假时,它将导致第二个函数

函数2:

if($category == "General")
    {
        $generalSQL = "SELECT * FROM einv_general_information WHERE einv_ginfo_aid = '" . $assetcode . "') ";
        $get_einv_asset_stockrm_SQL = base_executeSQL($generalSQL);
        $total = base_num_rows($get_einv_asset_stockrm_SQL);
        if ($total!= 0)
        {
            return true;
        }
        elseif($total== 0)
        {
            return false;
        }
    }

上面的代码工作正常,但存在错误,因为我尝试与上述$checkGeneral一起包含在$checkProduct

(考虑一切都相似,除了一般是更改为产品

这是我添加的方式:

$get_einv_asset_stockrm_SQL = base_executeSQL($SQL);
    while($General_row = base_fetch_array($get_einv_asset_stockrm_SQL))
    if (base_num_rows($get_einv_asset_stockrm_SQL)!= 0)
    {
        // General Information category
        if ($checkGeneral == true) {
            if(einv_editStockrm2($General_row['einv_asset_code'],"General"))
            {   
                $addGeneralSQL="INSERT INTO einv_general_information (einv_ginfo_status,einv_ginfo_remark,einv_ginfo_aid)
                    VALUES ('" . $status . "','" . base_addSlashSQL($remark) . "','" . $General_row['einv_asset_code'] . "')";
                //echo $getGeneralSQL;
                //Check and execute query
                if(!base_executeSQL($addGeneralSQL)) {
                    $continue = false;
                    echo $addGeneralSQL;
                }else { $continue = true; }
            }
        } 
        $get_einv_asset_stockrm_SQL = base_executeSQL($SQL);
        while($Product_row = base_fetch_array($get_einv_asset_stockrm_SQL))
        if (base_num_rows($get_einv_asset_stockrm_SQL)!= 0)
        if ($checkProduct == true) {
            if(einv_editStockrm2($Product_row['einv_asset_code'],"Product"))
            {
                $addProductSQL="INSERT INTO einv_product_information (einv_pinfo_pn,einv_pinfo_serial,einv_pinfo_desc,einv_pinfo_itemcat,einv_pinfo_aid)
        VALUES ('" . $partno . "','" . $serial . "','" . base_addSlashSQL($desc) . "','" . $itemcatID . "','" . $Product_row['einv_asset_code'] . "')";
            if(!base_executeSQL($addProductSQL)){
                $continue = false;
                echo $addProductSQL;
            }else { $continue = true; }
            }
        }

在函数 2 中:

if($category == "General")
    {
        $generalSQL = "SELECT * FROM einv_general_information WHERE einv_ginfo_aid = '" . $assetcode . "') ";
        $get_einv_asset_stockrm_SQL = base_executeSQL($generalSQL);
        $total = base_num_rows($get_einv_asset_stockrm_SQL);
        if ($total!= 0)
        {
            return true;
        }
        elseif($total== 0)
        {
            return false;
        }
    }
    if($category == "Product")
    {
        $productSQL ="SELECT * FROM einv_product_information WHERE einv_pinfo_aid = '" . $assetcode . "') ";
        $get_einv_asset_stockrm_SQL = base_executeSQL($productSQL);
        $total = base_num_rows($get_einv_asset_stockrm_SQL);
        if ($total!= 0)
        {
            return true;
        }
        elseif($total== 0)
        {
            return false;
        }
    }

如何修改我的代码以允许这两个检查起作用?

我不完全理解你的解释。我仍然认为我有理由回答。

步骤:

  1. 创建Switch Case,而不是条件if-else,以检查条件为真。
  2. 根据您的需要执行功能。

我认为,这个问题的简单和最好的解决方案从开关案例开始。