如何使用 PHP 和 SQL 应用array_diff



嗨,当用户编辑库房详细信息以替换为新结果时,我无法应用 array_diff()。

这是我通过 sql 调用所有变量的编辑函数。

 function einv_editStockrm($srid,$code,$name,$desc,$remark,$cat)
    {
        //connect to database
        base_connectDatabase();   
 $User = base_getUserDetail($_SESSION['uID']);
    $Stockroom = einv_getStockrmDetail($srid);
    base_executeSQL("UPDATE einv_stockroom
    SET einv_stockrm_code='" . $code . "',
    einv_stockrm_name='" . $name . "',
    einv_stockrm_desc='" . $desc . "',
    einv_stockrm_remark='" . $remark . "',
    einv_stockrm_cat = '" . $cat . "'
    WHERE einv_stockrm_id=" . $srid . "");
    base_addTransactionLog('Manage Stock Room', 'Edit',
    "
    Stock Room Code = " . $code . " ||
    Stock Room Name = " . $name . " ||
    Stock Room Description = " . $desc . " ||
    Stock Room Remark = " . $remark . " ||
    Stock Room Category = " . $cat . "
    ");

这是 array_diff() 函数。可能存在不必要的调用和/或缺乏编码。不太确定。这组编码不会导致任何输出。服务器基本上崩溃了。对此有任何帮助吗?

    //oldsr is existing stockroom data
    //newsr is new stockroom data through edit function
    //resultsr is the end result 
    <?php 
    $StockroomGetAllDetails = array();
    $arr2 = einv_getStockrmDetailFromCode($stockroomCode);
    $codearr = explode(",", $arr2['einv_stockrm_code']);
    $oldsr = array($codearr);
    $newsr = array($codearr);
    $resultsr = array_diff($newsr, $oldsr);
    if(!count(array_diff($oldsr, $newsr)) && !count(array_diff($newsr, $oldsr))) {
    // Arrays are equal
    } else {
    // Array values are different
        echo $resultsr;
    }
    ?> 

此代码用于重定向。

        //go to stock room page
        echo '<script type="text/javascript">' . "n";
        echo 'window.location="../einventory/view_stockrm.php?id='. $srid .'";';
        echo '</script>';
    //close the database
    base_closeDatabase();
}

这组代码能够显示相应添加和删除的新数据:)

$oldCat = $Stockroom["einv_stockrm_cat"];
$oldCatArr = explode(",",$oldCat);
$newCatArr = explode(",",$cat);
//Debugging
//print_r($oldCatArr);
//print_r($newCatArr);
$resultCatAdd = array_diff($newCatArr, $oldCatArr);
$resultCatRemove = array_diff($oldCatArr, $newCatArr);
//Debugging
print_r($resultCatAdd);
print_r($resultCatRemove);

最新更新