PHP MYSQL查询删除所有不在循环中的值

时间:2013-03-28 23:57:06

标签: php mysql

我正在考虑一个能够做我想要的事情的查询,但是它让我感到难过,所以我想我会选择一些想法的大脑。

我有一个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;
            }
        }
}

}

1 个答案:

答案 0 :(得分:1)

在环绕它时构建excel文件中所有代码的数组。获得excel文件中的所有代码后,查询数据库并获取所有代码的数组。然后你可以轻松地比较它们。一旦你不必担心所有的php_excel代码,它应该会更容易。一旦你将两个数组分开,就可以使用php array_search函数检查两个数组中是否存在代码然后处理它。