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