$cc = [ 'copyrightYear'=>'copyrightyear_nou', 'licenseUrl'=>'licenseurl_nou', 'copyrightHolder'=>'copyrightholder_nou' ]; $insert = "insert into publication_settings(publication_id,setting_name,setting_value) values(?,?,?)"; $insertHolder = "insert into publication_settings(publication_id,locale,setting_name,setting_value) values(?,?,?,?)"; $update = "update publication_settings set setting_value=? where publication_id=? and setting_name=?"; $selectsettings = "select if(setting_name='licenseURL','licenseUrl',setting_name) setting_name, if(setting_value>'',setting_value,'') setting_value from publication_settings where publication_id=? and setting_name in ('copyrightHolder','copyrightYear','licenseURL')"; $selectlocales = "select distinct locale from publication_settings where publication_id=? and setting_name='title'"; //sempre posarem copyrightHolder en aquests tres locales, independentment del títol $locales = ['ca_ES','en_US','es_ES']; $h = fopen('matter.csv','r'); //primera línia de títols //submission_id,publication_id,number,year,titol,autors,copyrightyear_actual,copyrightholder_actual,licenseurl_actual,copyrightyear_nou,copyrightholder_nou,licenseurl_nou $kk = fgetcsv($h,null,';'); while ($l = fgetcsv($h,null,';')) { $l = array_combine($kk,$l); extract($l); // publication_id,copyrightYear,copyrightHolder,licenseURL //valors actuals a bd $a = sql($selectsettings,[$publication_id]); $a = array_column($a,'setting_value','setting_name'); echo '
'; pre($a); // el que hi ha a la bd pre($l); // el que hi volem posar foreach ($cc as $c=>$cn) { if (isset($a[$c])) { $vv = [$l[$cn],$publication_id,$c]; echo $update; pre($vv); if (!$test) echo sql($update,$vv),"
\n"; } else { if ($c == 'copyrightHolder') { foreach ($locales as $locale) { $vv = [$publication_id,$locale,$c,$l[$cn]]; echo $insertHolder; pre($vv); if (!$test) echo sql($insertHolder,$vv),"
\n"; } } else { $vv = [$publication_id,$c,$l[$cn]]; echo $insert; pre($vv); if (!$test) echo sql($insert,$vv),"
\n"; } } }