mam 2 tabelki w MySQL:
CREATE TABLE IF NOT EXISTS `cms_temer` ( `bf_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, `nazwa` int(11) NOT NULL, `ilosc` int(11) NOT NULL, PRIMARY KEY (`nazwa`), UNIQUE KEY `id` (`bf_id`), UNIQUE KEY `nazwa` (`nazwa`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `cms_produkty` ( `bf_id` bigint(35) UNSIGNED NOT NULL AUTO_INCREMENT, `nazwa` varchar(455) COLLATE utf8_unicode_ci DEFAULT NULL, `obrazek` varchar(400) COLLATE utf8_unicode_ci DEFAULT NULL, `isbn` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, `kategoria` int(11) DEFAULT NULL, `podkategoria` int(11) DEFAULT NULL, `podgrupa` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `ate` varchar(300) COLLATE utf8_unicode_ci DEFAULT NULL, `ilosc` int(11) DEFAULT '1', UNIQUE KEY `id` (`bf_id`), UNIQUE KEY `isbn` (`isbn`), KEY `nazwa` (`nazwa`(333)), KEY `podkategoria` (`podkategoria`), KEY `kategoria` (`kategoria`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
W tabeli cms_produkty mam różnego rodzaju produkty (ok 200 tys). W tabeli cms_temer - mam codziennie aktualizowane stany.
Opis tabeli cms_temer:
nazwa = cms_produkty.ate
ilość = cms_produkty.ilosc
Muszę na podstawie tabeli cms_temer przeprowadzić aktualizację produktów w tabeli cms_produkty
Próbuję rozwiązać tą aktualizację za pomocą skryptu:
$update1 = null; $update2 = null; $update3 = null; $iillee = 0; $update = null; if($iillee < 200) { $update .= " UPDATE cms_produkty2 SET ilosc = '$rek[ilosc]' WHERE ate = '$rek[nazwa]'; "; $update1 .= " WHEN $rek[nazwa] THEN '$rek[ilosc]' "; $update2 .= " $rek[nazwa], "; $update3 .= $iillee = $iillee + 1; } if($iillee == 200){ $qqqqqq = "UPDATE cms_produkty2 SET ilosc = CASE ate $update1 ELSE ilosc END WHERE ate IN ($update2); "; $update1 = null; $update2 = null; $update3 = null; $iillee = 0; } }
Problem w tym że nie wszystkie rekordy zawsze mi się aktualizują.... Część produktów ma zmieniony stan - a część nie... Ma ktoś może pomysł jak to naprawić?
Bardzo proszę o pomoc,
Northwest