Php CSV文件将表数据上传并更新到MySQL[循环中的问题]

Php CSV文件将表数据上传并更新到MySQL[循环中的问题],php,mysql,csv,prestashop-1.6,Php,Mysql,Csv,Prestashop 1.6,尝试使用下面给出的代码更新(如果产品价格发生变化)并在产品表中插入新产品 $connection = mysql_connect(_DB_SERVER_, _DB_USER_, _DB_PASSWD_); $dbs_select = mysql_select_db(_DB_NAME_); // read the csv file in the form of array function readCSV($csvFile) { $file_handle = fopen($csvFile

尝试使用下面给出的代码更新(如果产品价格发生变化)并在产品表中插入新产品

$connection = mysql_connect(_DB_SERVER_, _DB_USER_, _DB_PASSWD_);
$dbs_select = mysql_select_db(_DB_NAME_);

// read the csv file in the form of array
function readCSV($csvFile) {
    $file_handle = fopen($csvFile, 'r');
    while (!feof($file_handle)) {
        $line_of_text[] = fgetcsv($file_handle, 1024);
    }
    fclose($file_handle);
    return $line_of_text;
}

//Set path to CSV file
$csvFile = '/home/demorct/public_html/prestashop/first import.csv';
$csv = readCSV($csvFile);
// CSV PArsing
$flag = 0;
foreach ($csv AS $csvdata) {
   $flag = $flag + 1;
   if($flag ==1){
       continue;
   }
    $csvdata1 = $csvdata['0'];
    $dataparsing = explode(";", $csvdata1);
    $BrandName = $dataparsing[0];
    $Modele = $dataparsing[1];
    $Ome = $dataparsing[2];
    $Gamme = $dataparsing[3];
    $Article = $dataparsing[4];
    $Abregee = $dataparsing[5];
    $Designation = $dataparsing[6];
    $Contenance = $dataparsing[7];
    $Page = $dataparsing[8];
    $Color = $dataparsing[9];
    $Weight = $dataparsing[10];
    $Code = $dataparsing[11];
    $Packagingimage = $dataparsing[12];
    $Productimage = $dataparsing[13];
    $Famille = $dataparsing[21];
    $Finalprice = $dataparsing[24];
    $status = $dataparsing[25];
    $quantity = $dataparsing[26];
    $date = date('Y-m-d H:i:s');  

  echo $productselect = "select  * from `ps_product` where `price` <> '$Finalprice' or `reference` <> '$Article' or `ean13` <>  '$Code' or `is_referenceoem` <> '$Ome' or `Range` <> '$Gamme' or `PackagingImage` <> '$Packagingimage' or `DesignationResume` <> '$Designation' or `Containance` <>  '$Contenance' or `Capacity` <> '$Page' or `quantity` <> '$quantity' or `color` <> '$Color' or `modele` <> '$Modele'";
          $result =  mysql_query($productselect) or die(mysql_error());
          while($dataArray = mysql_fetch_assoc($result)){
              echo "<pre>";
           echo $test = $dataArray['id_product'];
                $existrate = $dataArray['price'];
                $reference = $dataArray['reference'];
                $ean13 = $dataArray['ean13'];
                $is_referenceoem = $dataArray['is_referenceoem'];
                $Range = $dataArray['Range'];
                $PackagingImage = $dataArray['PackagingImage']; 
                $Containance = $dataArray['Containance'];
                $DesignationResume = $dataArray['DesignationResume'];
                $Capacity = $dataArray['Capacity'];
                $quantity = $dataArray['quantity'];
                $color = $dataArray['color'];
                $modele = $dataArray['modele'];
             echo "</pre>";

//MANUFACTURE ID
    $select_10 = "select * from `ps_manufacturer`";
    $result_10 = mysql_query($select_10);
    while ($row10 = mysql_fetch_array($result_10)) {
        $id_manufacturer = $row10['id_manufacturer'];




               echo "<br/>Final = $Finalprice, Existing = $existrate <br />"; 


          if (( $existrate!= $Finalprice ) && ($reference!= $Article) &&  ( $ean13!=$Code ) &&  ($is_referenceoem!= $Ome )){



         $mysql = "INSERT IGNORE  INTO `ps_product` (`id_category_default` ,`id_manufacturer`,`reference`,`ean13`,`is_referenceoem`,`price`,`PackagingImage`,`DesignationResume`,`Containance`,`Capacity`,`Range`,`date_add`,`quantity`,`color`,`modele`) VALUES(1,$id_manufacturer,'$Article','$Code','$Ome','$Finalprice','$Packagingimage','$Designation','$Contenance','$Page','$Gamme','$date','$quantity','$Color','$Modele')    ";
        mysql_query($mysql) or die(mysql_error());

          } else { echo $rateUpadte = "UPDATE `ps_product` SET `price` = '$Finalprice' , `reference` = '$Article' ,`ean13` = '$Code' ,`is_referenceoem` = '$Ome' WHERE `id_product` = ".$value;
            mysql_query($rateUpadte) or die(mysql_error());


          } 
    }

          }
          $flag++;   
 } 
$connection=mysql\u connect(\u DB\u SERVER\u、\u DB\u USER\u、\u DB\u PASSWD\u);
$dbs\u select=mysql\u select\u db(\u db\u NAME);
//读取数组形式的csv文件
函数readCSV($csvFile){
$file_handle=fopen($csvFile,'r');
而(!feof($file_handle)){
$line_of_text[]=fgetcsv($file_handle,1024);
}
fclose($file\u handle);
返回\u文本的$line\u;
}
//设置CSV文件的路径
$csvFile='/home/demorct/public_html/prestashop/first import.csv';
$csv=readCSV($csvFile);
//CSV解析
$flag=0;
foreach($csv作为$csvdata){
$flag=$flag+1;
如果($flag==1){
持续
}
$csvdata1=$csvdata['0'];
$dataparsing=explode(“;”,$csvdata1);
$BrandName=$dataparsing[0];
$Modele=$dataparsing[1];
$Ome=$dataparsing[2];
$Gamme=$dataparsing[3];
$Article=$dataparsing[4];
$Abregee=$dataparsing[5];
$Designation=$dataparsing[6];
$Contenance=$dataparsing[7];
$Page=$dataparsing[8];
$Color=$dataparsing[9];
$Weight=$dataparsing[10];
$Code=$dataparsing[11];
$Packagingimage=$dataparsing[12];
$Productimage=$dataparsing[13];
$Famille=$dataparsing[21];
$Finalprice=$dataparsing[24];
$status=$dataparsing[25];
$quantity=$dataparsing[26];
$date=日期('Y-m-d H:i:s');
echo$productselect="从“ps_产品”中选择*,其中“价格”$Finalprice”或“参考”$Article”或“ean13”$Code”或“是参考项”$Ome或“范围”$Gamme或“包装图像”$PackagingImage或“指定恢复”$Designation或“容器”$Contenance或“容量”$Page或“数量”$quantity或“颜色”$color或“modele”“$Modele”;
$result=mysql\u query($productselect)或die(mysql\u error());
而($dataArray=mysql\u fetch\u assoc($result)){
回声“;
echo$test=$dataArray['id_product'];
$existate=$dataArray['price'];
$reference=$dataArray['reference'];
$ean13=$dataArray['ean13'];
$is_referenceem=$dataArray['is_referenceem'];
$Range=$dataArray['Range'];
$PackagingImage=$dataArray['PackagingImage'];
$Containance=$dataArray['Containance'];
$DesignationResume=$dataArray['DesignationResume'];
$Capacity=$dataArray['Capacity'];
$quantity=$dataArray['quantity'];
$color=$dataArray['color'];
$modele=$dataArray['modele'];
回声“;
//制造商ID
$select_10=“从“ps_制造商”中选择*”;
$result\u 10=mysql\u查询($select\u 10);
而($row10=mysql\u fetch\u数组($result\u 10)){
$id_manufacturer=$row10['id_manufacturer'];
echo“
Final=$Finalprice,existate=$existate
”; 如果($existate!=$Finalprice)&($reference!=$Article)&($ean13!=$Code)&($is\u referenceoem!=$Ome)){ $mysql=“将忽略插入到`ps\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\(1、$id_制造商、$Article、$Code、$Ome、$Finalprice、$Packagingimage、$Designation、$Contenance、$Page、$Gamme、$date、$quantity、$Color、$Modele'); mysql_query($mysql)或die(mysql_error()); }else{echo$rateUpadte=“UPDATE`ps\u product`SET`price`='$Finalprice'、`reference`='$Article'、`ean13`='$Code'、`is\u referenceem`='$Ome',其中`id\u product`=''$value; mysql_query($rateUpadte)或die(mysql_error()); } } } $flag++; }
产品价格必须根据csv文件确定

CSV文件示例:

产品id产品价格
110
250
328
448
569

当前db table中产品表中的价格更新,但某处循环未按预期工作。代码工作,但它多次打印产品价格,有时显示上一个产品的最后价格,或在查询运行时显示00

下面给出的输出示例

一次性查询以…(在大多数情况下)的形式运行并在表中插入数据

产品id产品价格
100
200
300
400
500

一次性查询以…(有时)的形式运行并在表中插入数据
产品id产品价格
169
269
369
469
569