Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> API Allegro - stronicowanie pobranych aukcji, Po pobraniu aukcji allegro (API) brak stronicowania :(
radziu
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 29.03.2009

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


Witam szanownych kolegów,
tym razem poległem na WebApi Allegro, mam drobny kłopot.

Na tyle na ile potrafiłem, rozwiązałem swoje problemy a api_allegro we własnym zakresie, pół dnia siedziałem nad listowaniem aukcji na swojej stronie.
W końcu, kiedy pobrałem aukcje, poukładałem w listę w tabeli, pojawił mi się problem stronicowania tych aukcji i dzielenie ich na porcje.

chciałbym je podzielić na porcje po 10 aukcji, ale nie wiem jak się do tego zabrać, kompletna niemoc niestety (IMG:style_emoticons/default/smile.gif)

Aktualnie mam na koncie 38 aukcji, skrypt wyświetla wszystkie, ale z ustawionym parametrem 'limit' => 50 pokazuje mi 38 wierszy z aukcjami i pozostałe 12 puste....

  1. <? //początek wyświetlania/pobierania aukcji ?>
  2. <table class="oferta">
  3. <tr class="th">
  4. <td width="30">nr.</td>
  5. <td width="106">FOTO</td>
  6. <td width="397">TYTUŁ Aukcji</td>
  7. <td width="94">Nr.aukcji</td>
  8. <td width="156">KupTeraz</td>
  9. </tr>
  10. <?php
  11. define('ALLEGRO_ID', 'allegro id numer');
  12. define('ALLEGRO_LOGIN', 'nazwa użytkownika');
  13. define('ALLEGRO_PASSWORD', 'hasło do konta allegro');
  14. define('ALLEGRO_KEY', 'API klucz');
  15. define('ALLEGRO_COUNTRY', 1);
  16. require_once 'class.allegrowebapi.php';
  17.  
  18. $allegro = new AllegroWebAPI();
  19. $allegro->Login();
  20. $items_list = $allegro->GetUserItems(array('offset' => 0,'limit' => 50));
  21. for($i=0;$i<50;$i++)
  22. {
  23.  
  24. $nr_aukcji = $items_list['user-item-list'][$i]->{'it-id'};
  25. $tytul_aukcji = $items_list['user-item-list'][$i]->{'it-name'};
  26. $foto_mini = $items_list['user-item-list'][$i]->{'it-thumb-url'};
  27. $kup_teraz = $items_list['user-item-list'][$i]->{'it-buy-now-price'};
  28. echo "<tr class='rowTable_a'>";
  29. echo " <td>$i</td>";
  30. echo "<td><a href='http://allegro.pl/show_item.php?item=$nr_aukcji' title='$tytul_aukcji' target='_blank'><img src='$foto_mini'></a></td>";
  31. echo "<td>$tytul_aukcji</td>";
  32. echo "<td>$nr_aukcji</td>";
  33. echo "<td>$kup_teraz <b>PLN</b></td>";
  34. }
  35. ?>
  36.  
  37. </table>
  38. <? //koniec wyświetlania/pobierania aukcji ?>



Kompletnie zabrakło mi pomysłu jak poukładać ten listing w porcję po 10 aukcji, pomożecie...?


Przykład listingu aukcji na stronie

To jest wersja testowa mojego systemu, więc nie zwracajcie uwagi na detale (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
radziu
post
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 29.03.2009

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


Dzięki kolego, spróbuję jutro, bo dziś mam już dość cyferek i literek (IMG:style_emoticons/default/wink.gif)

..bądź co bądź, chyba zmienię front działań, bo grzebanie w api allegro i wyświetlanie ich w taki sposób jak bym chciał jakoś mi nie idzie...


Zastanawiam się, czy nie wygodniej by było pobrać GetUserItems, zapisać do bazy SQL i dopiero później wyświetlać, sortować,stronicować ?
Jeśli tak, to może ktoś już to robił i zechiałby pomóc w tym kierunku ? (IMG:style_emoticons/default/smile.gif)


Cytat(artur_dziocha @ 18.08.2012, 00:54:46 ) *
Przy pobieraniu aukcji nie musisz pobierać wszystkich na raz. To regulujesz sobie offsetem i limitem.
Jeśli chcesz pobrać pierwsze 10 aukcji ustawiasz limit na 10 offset na 0
Następne druga strona offset 1 i do 4

Ja robiłem sobie mniej więcej w ten sposób:).
Dostosuj do siebie

  1. public function getAllMyItems()
  2. {
  3. $count = $this->allItemsCount();
  4. $limit = 100;
  5. $offset = $count/$limit;
  6. for($i = 0; $i<=$offset; $i++ )
  7. {
  8. $this->getUserItems($i, $limit);
  9. }
  10. }
  11. private function getUserItems($offset, $limit)
  12. {
  13. $auctions = $this->client->doGetUserItems(
  14. $this->session['user-id'],
  15. $this->config['allegro_key'],
  16. $this->config['country_code'],
  17. $offset,
  18. $limit
  19. );
  20. $this->addToUserAuctions($auctions['user-item-list']); //to może sobie zamienić na wyświetlanie lub co tam chcesz
  21.  
  22. }
  23.  
  24. private function addToUserAuctions(array $auctions)
  25. {
  26. if(!empty($auctions))
  27. {
  28. foreach($auctions as $key => $value )
  29. {
  30. $this->userAuctions[] = $value->{'it-id'};
  31. }
  32. }
  33. }


getAllMyItems dostosuj do paginacji

Kolego, a może podrzuć linka i pokaż jak to wyszło u Ciebie ze stronicowaniem ? (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 9.10.2025 - 00:20