簡體   English   中英

PHP MYSQL查詢刪除所有不在循環中的值

[英]PHP MYSQL query to delete all values that are not in loop

我試圖考慮一個可以滿足我想要的查詢,但是這讓我很困惑,以至於我想為某些想法而絞盡腦汁。

我有一個excel文件,該文件被讀取並轉換為每一行和每一列的循環。

excel文件上大約有5000個值,因此發生了很多循環,我希望它在第二個循環內查詢數據庫中的列代碼,並且如果我的數據庫中有一個值不是代碼循環它會刪除它。 並且循環中所有不在數據庫中的代碼都將在頁面上回顯。

我的腳本工作正常,但是它只是在構造我感到困惑的查詢。

西蒙,任何建議都值得贊賞

我的代碼:

fileName    = '2_1_2013_UPC_customer.xlsx';
$objPHPExcel = PHPExcel_IOFactory::load("2_1_2013_UPC_customer.xlsx");
include_once dirname(__FILE__) . ('/PHPExcel/Writer/Excel2007.php');
require_once dirname(__FILE__) . '/PHPExcel/IOFactory.php';
$objPHPExcel = PHPExcel_IOFactory::load("2_1_2013_UPC_customer.xlsx");
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
    $worksheetTitle     = $worksheet->getTitle();
    $highestRow         = $worksheet->getHighestRow(); // e.g. 10
    $highestColumn      = $worksheet->getHighestColumn(); // e.g 'F'
    $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
    $nrColumns          = ord($highestColumn) - 64;
    for ($row = 2; $row <= $highestRow; ++$row) {
        for ($col = 0; $col < $highestColumnIndex; ++$col) {
            $cell     = $worksheet->getCellByColumnAndRow($col, $row);
            $val      = $cell->getValue();
            $dataType = PHPExcel_Cell_DataType::dataTypeForValue($val);

            if ($val == null) {
            } else {

                if ($col == 0) {
                $name = $val;
                }
                if ($col == 2) {
                $description = $val;
            }
            if ($col == 3) {
                $reference = $val;
            }
            if ($col == 4) {
                $weight = $val;
            }
        }
}

}

遍歷excel文件時,構建一個包含所有代碼的數組。 將所有代碼保存在excel文件中后,查詢數據庫並獲取其中所有代碼的數組。 然后,您可以輕松比較它們。 一旦不必擔心所有php_excel代碼,它應該會更容易做。 將兩個數組分開后,可以使用php array_search函數檢查兩個數組中是否存在代碼,然后進行處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM