| | |
| Stránka: 1 z 1
| [ Príspevkov: 21 ] | |
Autor | Správa |
---|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice |
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
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 07.12.2011 23:28 | |
|
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š.
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
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)
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 08.12.2011 18:04 | |
|
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.
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 08.12.2011 18:54 | |
|
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.
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
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?
_________________ C#, PHP, ... |
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 08.12.2011 19:08 | |
|
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?
|
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 08.12.2011 19:18 | |
|
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.
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
Môžeš byť konkrétnejší, o aké údaje v xml vôbec ide?
_________________ C#, PHP, ... |
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 08.12.2011 19:38 | |
|
no kedysi som riesil TVprogram z XML, ale teraz sa jedna o zoznam zakaznikov, ale to je v podstate jedno
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
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...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 08.12.2011 19:59 | |
|
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.
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 08.12.2011 22:10 | |
|
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š.
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
neopagan píše: 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
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 10.12.2011 11:55 | |
|
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.
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
nechápem, prečo máš uložený zoznam zákazníkov v XML a ešte k tomu na cudzom serveri. XML nie je a ani nikdy nebolo určené na uchovávanie dát v takomto zmysle, ale skôr ako nejaký prostredník medzi rôznymi aplikáciami.
Tak ale ako to už tebe vyhovuje...
_________________ C#, PHP, ... |
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 10.12.2011 12:35 | |
|
niekedy je dobre sa nezamyslat nad tym PRECO, ale proste to spravit ... zakaznik to tak chce, tak je to spravene tak Keby som mal na vyber, tak je to urcite inak...
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 10.12.2011 12:37 | |
|
možno som trochu mimo, ale mňa by zaujímalo, prečo to podľa toho zákazníka musí byť v XML, že ty ho nedokážeš presvedčiť, že je blbosť.
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
Je pekné, že dačo zákazník chce, ale ty mu musíš vedieť vysvetliť, prečo je jeho riešenie kravina na n-tú. Však ale rob ako myslíš. Len sa potom nečuduj, prečo ti budú zákazníci skákať po hlave pri každej príležitosti.
_________________ C#, PHP, ... |
|
Registrovaný: 21.02.06 Prihlásený: 08.12.14 Príspevky: 5404 Témy: 30 Bydlisko: Bratislava | Napísal shaggy: 10.12.2011 16:45 | |
|
Láskavo neriešte, či má niečo vysvetliť, alebo nie. Ak neviete odpovedať, tak neodpovedajte.
_________________ Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme. |
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 10.12.2011 21:05 | |
|
diky shaggy za podporu... temu mozeme uzavriet, vyriesene.
Dakujem vam za rady.
PS: pri takom mnozstve zakaznikov co mam, nie je vobec cas im nieco vysvetlovat, treba makat... ked mi niekto zaplati za to ze to spravim bez dtb tak to spravim tak ako chce, neriesim. Ked odo mna chce iny zakaznik nehoraznu blbost a zaplati za to nehorazne prachy, tak tiez neriesim To je biznis.
|
|
| Stránka: 1 z 1
| [ Príspevkov: 21 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| viacero typov uzivatelov pri vypise komentarov v Databázy | 2 | 639 | 18.01.2011 17:41 Feko | | Problem s tabulatorom pri vypise - curses.h (C) v Assembler, C, C++, Pascal, Java | 1 | 401 | 19.04.2011 19:16 chrono | | pri výpise z datzabázy mi nevypíše celý php kód v PHP, ASP | 2 | 460 | 13.04.2009 18:39 Unlink | | PHP stránkovanie v dive - znemožní stránkovanie v PHP, ASP | 7 | 545 | 24.07.2011 12:44 shaggy | | Problém pri spustení Crysis 3 vypíše msvcr100.dll is missing v Operačné systémy Microsoft | 7 | 575 | 04.10.2013 22:00 globalik | | SSD pri inštalácii vypíše:Zabezpecte aby bol radic disku aktivovany v systeme BIOS pocitaca v SSD disky | 9 | 1741 | 20.11.2016 13:50 michalesku | | Generovanie XML:Chybná analýza XML: žiadny prvok sa nenašiel v HTML, XHTML, XML, CSS | 1 | 874 | 16.12.2011 16:49 Ďuri | | XML Schema => XML instance document v HTML, XHTML, XML, CSS | 0 | 726 | 02.11.2009 17:46 sINN3r | | PHP/MySQL vypíše len Num. v PHP, ASP | 2 | 254 | 10.02.2013 17:08 hegi55 | | CCleaner vypise subory ale ich nevymaze. v Ostatné programy | 6 | 965 | 07.02.2011 7:49 tiktak1953 | | vypis zavisly na vypise predchadzajuceho vypisu v Databázy | 2 | 476 | 14.07.2011 22:59 jablko05 | | Po zapnutí počítača mi vypíše toto: v Ostatné | 9 | 947 | 14.12.2006 22:12 ERGO | | Assembler - vystup namiesto cisel mi vypise pismena v Assembler, C, C++, Pascal, Java | 4 | 341 | 10.08.2014 16:44 nasm | | strankovanie v JavaScript, VBScript, Ajax | 3 | 627 | 09.01.2009 12:47 rooobertek | | Strankovanie v PHP, ASP | 7 | 544 | 03.05.2008 11:24 qacer | | Strankovanie [ Choď na stránku: 1, 2 ] v PHP, ASP | 35 | 2252 | 13.01.2008 14:11 ROmario |
| Nemôžete zakladať nové témy v tomto fóre 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
|
|