Witam serdecznie,
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;
$wynik = mysql_query(" SELECT * FROM cms_temer ;") or die('Query failed: ' . mysql_error());
while($rek = mysql_fetch_array($wynik)) {
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){
$update2 = substr($update2, 0, -3);
$qqqqqq = "UPDATE cms_produkty2 SET ilosc = CASE ate
$update1
ELSE ilosc END
WHERE ate IN ($update2);
";
mysql_query($qqqqqq);
$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