import do tabeli tymczasowej wyglada tak i on jest odpalany jako pierwszy:
$baza->query("INSERT INTO `xml_produkty` SET `IDXProduktu` = '".$v['IDXProduktu']."', `IDKategorii` = (SELECT `IDKategorii` FROM `xml_kategorie` WHERE `IDXKategorii` = '".$v['IDXKategorii']."'), .... `Akcja` = (SELECT COUNT(*) FROM `oferta_produkty` WHERE `IDXProduktu` = '".$v['IDXProduktu']."'), `PelnyOpis` = '".$v['PelnyOpis']."'");
tu pojawia sie pierwszy poblem, pole akcja sluzy do wykrycia czy dany produktu jest juz w bazie i czasem mimo ze produkt jest w bazie zwroci 0, i duplikuje mi produkty;
nastepnie kopiowanie produktow podzielime na czesci po 2000 produktow kazda, i tu wydaje sie byc wszytsko ok, oprocz zduplikwoanych produktow
$res = $baza->query("SELECT * FROM `xml_produkty` LIMIT ".$set.",".$offset); $QUERY = ''; while($row = $res->fetch_assoc()) { if($row['Akcja'] == 0) { $baza->query("INSERT INTO `oferta_produkty` SET `IDXProduktu` = '".$row['IDXProduktu']."', .... `StatusProduktu` = '1', `Podatek` = '2', `Flag` = '1' "); } else { $QUERY .= " UPDATE `oferta_produkty` SET `NazwaProduktu` = '".$row['NazwaProduktu']."', [...] `Flag` = '1' WHERE `IDXProduktu` = '".$row['IDXProduktu']."'; "; } } if( $QUERY != '') { $baza->multi_query($QUERY); }
i na koniec leca ceny tez podzielone po 2000 rekordow, cala tablica cen jest czyszczona i uzupelniena od nowa
$res = $baza->query("SELECT * FROM `xml_ceny` LIMIT ".$set.",".$offset); $QUERY = ''; while($row = $res->fetch_assoc()) { $QUERY .= "INSERT INTO `oferta_ceny` SET `IDProduktu` = (SELECT `IDProduktu` FROM `oferta_produkty` WHERE `IDXProduktu` = ".$row['IDXProduktu']."), `IDXProduktu` = '".$row['IDXProduktu']."', `Wartosc` = '".$row['Wartosc']."';"; } if($QUERY != '') $baza->multi_query($QUERY);
i tu pojawia sie kolejny problem bo zdarza sie ze nie przepisze mi cen z osatnich rekordow;