IT NEWS PC REVUE PC FORUM FreeBSDInternet time: @295
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

Keď klient slúži

Globálny líder v oblasti tenkých klientov prichádza na Slovensko. www.ts.avnet.com

Lepšie vzťahy so zákazníkmi

väčšiu kontrolu nad firemnými procesmi získate so softvérom Sunsoft.CRM crm.sunsoft.sk

Zbavte sa viazanosti

Za Xperia Mini Pro so strieborným O2 Paušálom zaplatíte teraz 53 €! pausal.o2.sk

Sprostredkovávajte hypotéky

Začnite sprostredkovávať hypotéky s úspešným hypotekárnym centrom! www.SprostredkovanieUverov.sk

Čerstvý a voňavý domov?

Testovali sme Ambi Pur. Pozrite sa na prekvapivé výsledky experimentu! youtube.com/AmbiPur_SK

strankovanie pri vypise z XML

Zaslať odpoveď
AutorSpráva
neopagan
Užívateľ
Užívateľ

Založený: 07.08.2006
Príspevky: 681

PríspevokZaslal: St 07.12.11 23:07Odpovedať s citátomNávrat hore

Pomocou PHP parsujem XML subor, ktory obsahuje asi 50 udajov.

Na stranke teda z toho XML suboru dam vypisat tie udaje v poradi ako to je v XML.

Chcel by som vsak dosiahnut, aby na stranke vypisalo len prvych 10 zaznamov, a po kliknuti na stranku 2 dalsich 11-20 zaznamov atd.. proste klasicke strankovanie.

Keby som to mal vypisat z DTB, tak nie je problem strankovanie pomocou LIMIT, avsak ked to taham z XML suboru, neviem si rady.

Len pre info: udaje vypisujem v cykle
kód:
foreach($content->NAZVY as $adx) {echo ...  atd.}


diky vopred
Zobraziť informácie o autoroviOdoslať súkromnú správu
camo
Zablokovaný užívateľ
Zablokovaný užívateľ

Založený: 05.09.2009
Príspevky: 1176
Bydlisko: Lehota pod Vtáčnikom

PríspevokZaslal: Št 08.12.11 0:28Odpovedať s citátomNávrat hore

Ak toho nieje nejak veľa tak to daj do session. Inak to jedine dať do db aj keď z tade sa to bude musieť zase nejako parsovať...

Vlastne veď si nastavíš nejakú premennú X na dajme tomu 20(záznamy od 20 vyššie), to podľa toho čo ti príde cez $_GET['page'] a inkrement Y ktorý budeš v tom cykle porovnávať s tým X. A vypíšeš len tie od Y=20 po koľko chceš.
Zobraziť informácie o autoroviOdoslať súkromnú správuSkypeZobraziť autorove WWW stránky
stenley
Moderátor
Moderátor

Založený: 27.07.2007
Príspevky: 3776
Bydlisko: Bratislava
Vek: 27

PríspevokZaslal: Št 08.12.11 9:51Odpovedať s citátomNávrat hore

jednoducho si do $content vlozis len tie zaznamy, ktore sa maju zobrazit na aktualnej stranke - poznas cislo stranky, vies kolko zaznamov sa ma na jednej stranke zobrazit - nie je nic lahsie ako pouzit napr. position() v xpath, pomocou coho si vyselektujes zaznamy, ktore presne potrebujes (od - do)

_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Zobraziť informácie o autoroviOdoslať súkromnú správuICQJabber
neopagan
Užívateľ
Užívateľ

Založený: 07.08.2006
Príspevky: 681

PríspevokZaslal: Št 08.12.11 19:04Odpovedať s citátomNávrat hore

diky za odpovede, asi to spravim ako navrhuje stenley. Avsak nevyhodou je, ze po kazdom vypise daneho poctu zaznamov bude musiet stale spracuvat ten XML subor, ktory je externy a znamena to zbytocnu zataz daneho servera.

Teraz je tych zaznamov cca. 50, ale casom ak ich bude viac to moze byt i problem.

A taktiez, ak sa na stranke vypise napr. prvych 10 zaznamov, a medzitym sa XML subor na externom serveri zmeni - updatne o dalsie zaznamy, alebo z neho nieco vymazu, tak uz dany vypis nebude aktualny a strankovanie nemusi fungovat spravne...

Napriek tomu sa mi to zatial zda ako rozumne riesenie.
Zobraziť informácie o autoroviOdoslať súkromnú správu
camo
Zablokovaný užívateľ
Zablokovaný užívateľ

Založený: 05.09.2009
Príspevky: 1176
Bydlisko: Lehota pod Vtáčnikom

PríspevokZaslal: Št 08.12.11 19:54Odpovedať s citátomNávrat hore

Keby tá aktualizácia toho XML nebola taká fatálna, tak by sa to dalo riešiť tak, že by si napr. raz za deň cez CRON volal ten parser a ten by ti to uložil do DB. A aplikácia by to už ťahala z DB.
Zobraziť informácie o autoroviOdoslať súkromnú správuSkypeZobraziť autorove WWW stránky
walther
Užívateľ
Užívateľ

Založený: 24.01.2008
Príspevky: 10194
Bydlisko: Bratislava
Vek: 24

PríspevokZaslal: Št 08.12.11 20:00Odpovedať s citátomNávrat hore

Zbytočná záťaž? A keď to bude v DB alebo na inom serveri, tam to pobeží na vzduch a žiadna záťaž nebude?

Keby to bolo uložené niekde inde, tak aktualizácia, mazanie a podobne by neexistovali??

neopagan, je toto tvoja prvá webstránka?
Zobraziť informácie o autoroviOdoslať súkromnú správu
camo
Zablokovaný užívateľ
Zablokovaný užívateľ

Založený: 05.09.2009
Príspevky: 1176
Bydlisko: Lehota pod Vtáčnikom

PríspevokZaslal: Št 08.12.11 20:08Odpovedať s citátomNávrat hore

Walther:
Ak je ten súbor relatívne malý tak platí to čo píšeš, ale ak je obrovský tak ho
1. musíš stiahnuť
2. sparsovať.
DB by to urobila určite rýchlejšie, nie?
Zobraziť informácie o autoroviOdoslať súkromnú správuSkypeZobraziť autorove WWW stránky
neopagan
Užívateľ
Užívateľ

Založený: 07.08.2006
Príspevky: 681

PríspevokZaslal: Št 08.12.11 20:18Odpovedať s citátomNávrat hore

walther to mas pravdu s dtb by to fungovalo rovnako pri strankovani

Keby udaje boli v dtb na lokalnom serveri tak by zataz bola urcite mensia ako keby kazdu chvilu mal script spracuvat externy XML subor z ineho servera. Pri obrovskej navstevnosti sa mi neraz stalo, ze ten server padol, kde bol podobny XML subor, pretoze naraz bolo extremne vela poziadaviek na jeho parsovanie. Vtedy som vyuzil to co pise camo, ze sa XML stiahol raz denne a pracovalo sa s nim lokalne. Ten subor vsak nebol casto aktualizovany, tak stacilo stiahnut raz denne.

Lenze klient nechce dtb. Preco by som inak asi riesil tento problem?

No nejak to uz vyriesim.
Zobraziť informácie o autoroviOdoslať súkromnú správu
walther
Užívateľ
Užívateľ

Založený: 24.01.2008
Príspevky: 10194
Bydlisko: Bratislava
Vek: 24

PríspevokZaslal: Št 08.12.11 20:32Odpovedať s citátomNávrat hore

Môžeš byť konkrétnejší, o aké údaje v xml vôbec ide?
Zobraziť informácie o autoroviOdoslať súkromnú správu
neopagan
Užívateľ
Užívateľ

Založený: 07.08.2006
Príspevky: 681

PríspevokZaslal: Št 08.12.11 20:38Odpovedať s citátomNávrat hore

no kedysi som riesil TVprogram z XML, ale teraz sa jedna o zoznam zakaznikov, ale to je v podstate jedno
Zobraziť informácie o autoroviOdoslať súkromnú správu
stenley
Moderátor
Moderátor

Založený: 27.07.2007
Príspevky: 3776
Bydlisko: Bratislava
Vek: 27

PríspevokZaslal: Št 08.12.11 20:38Odpovedať s citátomNávrat hore

ak potrebujes, mozes dany subor stahovat aj castejsie, resp. by pomohol nejaky system upozornovnia na zmeny vykonane v externom xml - ak mas na to dosah, bolo by to super, lebo by si ho stiahol len vtedy, ak by bol aktualizovany...

_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Zobraziť informácie o autoroviOdoslať súkromnú správuICQJabber
neopagan
Užívateľ
Užívateľ

Založený: 07.08.2006
Príspevky: 681

PríspevokZaslal: Št 08.12.11 20:59Odpovedať s citátomNávrat hore

nakoniec som to vyriesil tak, ze kazdej hlavnej sekcii v XML som pridal atribut s cislom - napr.
kód:
<ZAKAZNIK count="1">
<meno>xxx</meno>
<adresa>xxxx</adresa>
</ZAKAZNIK>
<ZAKAZNIK count="2">
<meno>xxx</meno>
<adresa>xxxx</adresa>
</ZAKAZNIK>
... atd.

a potom vlastne na zaklade parametra page aj v URL dam vypisat dany pocet zaznamov. Pricom premenna limit je vlastne pocet zaznamov na stranku.

kód:
if ( $xml->attributes()->count> 0 && $adx->attributes()->count<= $page+$limit ) .. atd...


funguje to dobre.
Zobraziť informácie o autoroviOdoslať súkromnú správu
camo
Zablokovaný užívateľ
Zablokovaný užívateľ

Založený: 05.09.2009
Príspevky: 1176
Bydlisko: Lehota pod Vtáčnikom

PríspevokZaslal: Št 08.12.11 23:10Odpovedať s citátomNávrat hore

Tak ako je to teda zákazník nechce DB, alebo je príliš často aktualizvané?

Ale napadlo ma ešte možno lepšie riešenie.
Sparsovať to a uložiť ako php pole/objekt, ktoré si potom len includneš.
Zobraziť informácie o autoroviOdoslať súkromnú správuSkypeZobraziť autorove WWW stránky
stenley
Moderátor
Moderátor

Založený: 27.07.2007
Príspevky: 3776
Bydlisko: Bratislava
Vek: 27

PríspevokZaslal: Pi 09.12.11 9:10Odpovedať s citátomNávrat hore

neopagan napísal:
funguje to dobre.

si si isty? podla mna je to blbost (samozrejme len podla toho kusu kodu, co si sem dal), lebo ked vymazes nejakych zakaznikov, tak ti to uz nebude fungovat spravne - dajme tomu, odstranim prvych 5 zaznamov, na prvej stranke budes zobrazovat 5 zakaznikov a na ostatnych 10? Alebo budes pri kazdej zmene stale aktualizovat hodnoty atributu count v celom subore? toto tvoje riesenie je tusim najhorsia vec, co si mohol spravit

_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Zobraziť informácie o autoroviOdoslať súkromnú správuICQJabber
neopagan
Užívateľ
Užívateľ

Založený: 07.08.2006
Príspevky: 681

PríspevokZaslal: So 10.12.11 12:55Odpovedať s citátomNávrat hore

blbost to nie je stenley, pretoze po kazdej zmene poctu zakaznikov sa cely XML subor zmaze a prepise sa aktualnymi udajmi, ktorych atributy budu opat spravne v poradi.

Akurat ze by mohlo dojst k tomu, ze ak prave mas otvorenu stranku s prvymi 10 zaznamami tak na druhej stranke sa uz pocet nemusi zobrazit spravne ak medzitym nieco do toho suboru pridali alebo zmazali. Ale to iste by platilo aj v pripade DTB.

Je to samozrejme len kusok kodu co som sem dal, este pokracuje dalej s dalsimi podmienkami.

Mam to otestovane a uz je to LIVE a funguje bez problemov.
Zobraziť informácie o autoroviOdoslať súkromnú správu
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
Nemôžete odpovedať na témy v tomto fóre.
Nemôžete upravovať svoje príspevky v tomto fóre.
Nemôžete mazať svoje príspevky v tomto fóre.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF

SEO - optimalizácia pre vyhľadávače

Freebsd