Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF][mysql] Zend_Feed_Rss
Forum PHP.pl > Forum > PHP > Frameworki
grOm
Witam,

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 :
  1. public FUNCTION exist($nazwa)
  2. {
  3. $ret = $this->_db->query ("
  4. SELECT count(*) FROM `news` WHERE `hash` LIKE '$nazwa'
  5. ");
  6. $ile = $ret->fetchAll();
  7. IF ($ile[0]['count(*)']>0) RETURN 1; else RETURN 0;
  8. }


i cala moja akcja
  1. function grabAction()
  2. {
  3. $channels = new Channels;
  4. $njus = new News;
  5. $kanaly = $channels->dump();
  6. $items_ile = 0; // do zliczania calkowitej liczby newsow na rssach
  7. $items_dodano = 0; // ile zostalo dodano do bazy
  8. foreach ($kanaly as $kanal)
  9. {
  10. $rss = new Zend_Feed_Rss($kanal['rss']);
  11. foreach ($rss as $news)
  12. {
  13. $items_ile++;
  14. if (empty($news->pubDate)) $pubDate = date("Y-m-d h:m:s");
  15. else $pubDate = date('Y-m-d h:m:s',strtotime($news->pubDate));
  16.  
  17. $data = array (
  18. 'title' => $news->title(),
  19. 'description' => strip_tags($news->description()),
  20. 'link' => $news->link(),
  21. 'category' => $kanal['kategoria'],
  22. 'kanal' => $kanal['id'],
  23. 'pubDate' => $pubDate,
  24. 'source' => $kanal['source'],
  25. 'hash' => md5($news->title)
  26. );
  27. if (!$njus->exist(md5($news->title))) // jezeli newsa nie ma w bazie DODAJ go
  28. {
  29. $items_dodano++;
  30. $dodaj = $njus->insert($data);
  31. }
  32.  
  33. } // newsy
  34.  
  35. } // kanaly
  36. echo 'Wszystkich : <b>'.$items_ile.'</b><br />Znaleziono i dodano <b>'.$items_dodano.'</b> nowych newsow';
  37. } // akcja

seth-kk
a skad pewnosc ze tematy sie nie powtarzaja?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.