nie wiem czy w dobrej kategorii pisze ZF/MYSQL, poniewaz nie wiem w czym jest problem dokladnie : )
Problem polega na tym, ze Zend_Feed_Rss przykladowo pobiera mi 500 newsow z roznych kanalow, ale juz przy dodawaniu do bazy danych (tabela pusta) tych wszystkich newsow dodaje mi np. 480, za chwile uruchomie jeszcze raz te akcje i mi dodaje np kolejne 10 ale nigdy calosci.
Wydaje mi się ze zle mam napisane sprawdzanie czy news jest juz w bazie (za duzo zapytan w krotkim okresie czasu)
funkcja sprawdzająca :
public FUNCTION exist($nazwa) { $ret = $this->_db->query (" SELECT count(*) FROM `news` WHERE `hash` LIKE '$nazwa' "); $ile = $ret->fetchAll(); IF ($ile[0]['count(*)']>0) RETURN 1; else RETURN 0; }
i cala moja akcja
function grabAction() { $channels = new Channels; $njus = new News; $kanaly = $channels->dump(); $items_ile = 0; // do zliczania calkowitej liczby newsow na rssach $items_dodano = 0; // ile zostalo dodano do bazy foreach ($kanaly as $kanal) { $rss = new Zend_Feed_Rss($kanal['rss']); foreach ($rss as $news) { $items_ile++; 'title' => $news->title(), 'link' => $news->link(), 'category' => $kanal['kategoria'], 'kanal' => $kanal['id'], 'pubDate' => $pubDate, 'source' => $kanal['source'], ); { $items_dodano++; $dodaj = $njus->insert($data); } } // newsy } // kanaly echo 'Wszystkich : <b>'.$items_ile.'</b><br />Znaleziono i dodano <b>'.$items_dodano.'</b> nowych newsow'; } // akcja