Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Pager, stronicowanie dla pętli foreach
Malinaa
post
Post #1





Grupa: Zarejestrowani
Postów: 577
Pomógł: 6
Dołączył: 21.07.2008

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


Witam,
piszę skrypt przetwarzający pliki .xml na HTML (plik jest listą produktów)
i mam kłopot ze zrobieniem pagera, pliki z produktami są dużych rozmiarów i zawierają po 500 produktów,
potrzebny jest mi więc pager, aby wyświetlać na jednej stronie nie więcej niż 100 produktów.

Mam taki kod:
  1. $plik_xml = 'xml/'.$oferta_xml; // plik xml
  2. $dane = simplexml_load_file($plik_xml);
  3. $ile_rekordow = count($dane);
  4.  
  5. foreach ($dane as $produkt) {
  6. $nazwa = ((string)$produkt->nazwa);
  7. $opis = ((string)$produkt->opis);
  8. $url = ((string)$produkt->url);
  9. $cena = ((string)$produkt->cena);
  10. $cena_promocja = ((string)$produkt->cena_w_promocji);
  11. $zdjecie = ((string)$produkt->zdjecie);
  12.  
  13. echo "Nazwa produktu: $nazwa, opis: $opis, url: $url, cena: $cena, cena w promocji: $cena_promocja, zdjecie: $zdjecie";
  14. }

Jak tutaj zrobić pager?
Wyświetić określoną liczbę produktów i przejście do kolejnych stron?

Ten post edytował Malinaa 4.05.2011, 20:03:11
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Malinaa
post
Post #2





Grupa: Zarejestrowani
Postów: 577
Pomógł: 6
Dołączył: 21.07.2008

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


Jak dla tej pętli zrobić pager?

Dla pętli for powinno działać,
mam jednak taki problem, tablica ma postać:

  1. SimpleXMLElement Object (
  2. [produkt] => Array (
  3. [0] => SimpleXMLElement Object ( [id] => 603 [nazwa] => SimpleXMLElement Object ( ) [opis] => SimpleXMLElement Object ( ) [url] => SimpleXMLElement Object ( ) [cena] => 80.00 [cena_w_promocji] => 59.90 [kategoria] => SimpleXMLElement Object ( ) [zdjecie] => SimpleXMLElement Object ( ) )
  4. [1] => SimpleXMLElement Object ( [id] => 554 [nazwa] => SimpleXMLElement Object ( ) [opis] => SimpleXMLElement Object ( ) [url] => SimpleXMLElement Object ( ) [cena] => 75.00 [cena_w_promocji] => 59.90 [kategoria] => SimpleXMLElement Object ( ) [zdjecie] => SimpleXMLElement Object ( ) )
  5. [2] => SimpleXMLElement Object ( [id] => 596 [nazwa] => SimpleXMLElement Object ( ) [opis] => SimpleXMLElement Object ( ) [url] => SimpleXMLElement Object ( ) [cena] => 120.00 [cena_w_promocji] => 99.90 [kategoria] => SimpleXMLElement Object ( ) [zdjecie] => SimpleXMLElement Object ( ) )
  6. [3] => SimpleXMLElement Object ( [id] => 596 [nazwa] => SimpleXMLElement Object ( ) [opis] => SimpleXMLElement Object ( ) [url] => SimpleXMLElement Object ( ) [cena] => 100.00 [cena_w_promocji] => 79.90 [kategoria] => SimpleXMLElement Object ( ) [zdjecie] => SimpleXMLElement Object ( ) )
  7. ...
  8. )
  9. )


jak z tablicy $dane pobierać wartości dla for'a:

for ($i=$start; $i<=$stop; $i++) {
$nazwa = '? ? ?'; // bylo ((string)$produkt->nazwa);
// itd...
}



Kontynuacja tematu, nowe pytanie:

Skrypt śmiga, ale jest jeszcze jeden kłopot z wielkością plików .xml .

Najczęściej są to duże pliki, czasem powyżej 10 MB.

Jeśli plik mieści się w rozmiarch 1MB nie ma problemu, ale jeżeli plik .xml przekracza wymienioną wielkość wyskakuje błąd: Allowed memory size...

W jaki sposób przetwarzać (czytać) w PHP XML'a tak aby nie brakowało pamięci?

Błąd wskazuje na linie z takim kodem:

  1. xml_parse_into_struct($parser, trim($contents), $xml_values);


Ten post edytował Malinaa 18.05.2011, 13:02:23
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 8.10.2025 - 07:49