Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZF][mysql] Zend_Feed_Rss, Nie dodaje mi wszystkich pobranych newsow do bazy
grOm
post 18.10.2009, 04:13:24
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 4
Dołączył: 6.10.2005

Ostrzeżenie: (0%)
-----


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



--------------------
Zend Certified Engineer
Go to the top of the page
+Quote Post
seth-kk
post 18.10.2009, 22:24:43
Post #2





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

Ostrzeżenie: (0%)
-----


a skad pewnosc ze tematy sie nie powtarzaja?


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.06.2025 - 17:27