Autor | Zpráva | ||
---|---|---|---|
Yuff.3 Profil |
#1 · Zasláno: 16. 8. 2014, 17:21:42
Ahojte,
Cez funkciu foreach mi vráti príliš veľký počet dát. Ako príklad uvediem: http://4funportal.eu/cs/members.php?sortby=all&rowstart=20 -> čiže ak je na stránke viac ako 20 výsledkov, ostatné zase hodí na ďalšiu stránku. Keby ich aj tam bolo viac ako 20, tak ostatné zase hodí na ďalšiu stránku a takto pokračuje donekonečna.. Jak tohoto docielim?? Vopred ďakujem :) |
||
mimochodec Profil |
#2 · Zasláno: 16. 8. 2014, 17:26:43
Z toho odkazu nevyplývá ohledně velkého počtu dat nic.
Nevím, jak přesně používáš foreach, ale stránkování se běžně řeší už na úrovni získání dat z databáze, a to pomocí LIMIT: http://dev.mysql.com/doc/refman/5.0/en/select.html |
||
lionel messi Profil |
#3 · Zasláno: 16. 8. 2014, 17:31:42
Yuff.3:
Ja som použil tento (mierne upravený) návod: programujte.com/clanek/2009110900-jednoduche-strankovani-v-php (samozrejme je potrebné MySQL). |
||
Yuff.3 Profil |
#4 · Zasláno: 16. 8. 2014, 17:51:56
Nejedná sa mi o výpis z DB. Ide o json - výpis z aplikácie a preto potrebujem nejaký iný spôsob..
Konkrétnejšie môžem uviesť, že $premenna -> obsahuje niekoľko záležitostí -> napr. "123456", "23467", "34678", atď atď.. jednotlivých čísel môže byť XY, preto to potrebujem takto rozdeliť na stránky.. A ešte tu môže nastať komplikácia v tom, že stránka - stranka.php je dosť zložitého tvaru, zlepená z niekoľkých cyklov. Čiže jej tvar je stranka.php?stranka=ID&stranka=stranka&nova=novastranka -> a práve sem potrebujem toto "stránkovanie". Ocenil by som, keby sa dal napísať podrobne či skôr konkrétne kód ako by to mohlo vyzerať.. Vďaka. |
||
mimochodec Profil |
#5 · Zasláno: 16. 8. 2014, 17:58:41
Yuff.3:
Nejdřív si spočítej položky z toho JSONu a vygeneruj si nějakou řadu odkazů pro stránkování. Např. při 100 položkách a 20 pol./str. potřebuješ stránky 1 2 3 4 5. Všechny ty odkazy budou samozřejmě mířit na stejnou stránku, které jen budeš měnit ten parametr rowstart. Ten pak použiješ uvnitř toho foreach - při průchodu č. $rowstart začínáš vypisovat, při $rowstart+19 končíš. |
||
Radek9 Profil |
Yuff.3:
Jedná se o postupně indexované pole (myšleno v rozsahu 0-X bez mezer)? Pokud ano, můžeš použít funkci count , která vrací počet prvků v poli. Potom z adresy vezmeš aktuální stránku (pravděpodobně počítanou od jedničky) a vypíšeš z pole for cyklem rozsah ($page - 1) * $itemsOnPage (včetně) až $page * $itemsOnPage (kromě).
|
||
Yuff.3 Profil |
#7 · Zasláno: 16. 8. 2014, 18:04:50
mimochodec, Radek9:
je to na mňa asi moc zložité :D Chápem cca ako na to aj čo, ale netrúfam si na ten kód :D „můžeš použít funkci count“ ako presne sa používa, resp. ako ten počet prvkov dostanem do $premenna_count ?? „Potom“ odtiaľto už nechápem :D jak cyklom vypísať rozhas? aké rozhas? .. ____________ Musíte na mňa trochu podrobnejšie/konkrétnejšie, nie som zdatný v týchto veciach ako vy. :) |
||
Radek9 Profil |
Yuff.3:
„je to na mňa asi moc zložité“ Nepovídej. To už jsem pochopil z tvých předešlých příspěvků zde na diskusi. „ako presne sa používa, resp. ako ten počet prvkov dostanem do $premenna_count ??“ Upřímně bych čekal, že tohle napadne i tebe. Funkce v matematice jste brali? Ty v programování se používájí víceméně stejně. Funkci dáš argument (tady zrovna to, co chceš spočítat – takže pole) a vrátí ti výsledek, který můžeš uložit do proměnné. Případně tu je vždycky dokumentace. $itemsCount = count($items);
Před otazníkem se nedělá mezera. Taktéž se píše jen jeden, nikoli dva. „jak cyklom vypísať rozhas? aké rozhas? ..“ Pokud se snažíš programovat, jistě by ses měl seznámit s cyklem for , který je jedním z nejdůležitějších stavebních prvků všech programů. Z dokumentace (a hlavně z ukázek) ho jistě pochopíš i s tvými znalostmi angličtiny.
„Musíte na mňa trochu podrobnejšie/konkrétnejšie, nie som zdatný v týchto veciach ako vy. :)“ Toto není o zdatnosti. Chápu, že každý někdy s programováním začíná a potřebuje poradit i s banálnějšími věcmi. Každý z nás tam byl. Jenže ty jsi sám ve svých příšpěvcích uvedl, že nemáš zájem se programování učit. S tímhle přístupem nemáš naději napsat jakýkoli smysluplnější script a budeš pouze lepit kódy, které ti po žundrání napíší ostatní. Proto tě prosím. Pokud nemáš zájem projevit vlastní snahu a něco si nastudovat, využij zdejší sekci Práce a zakázky. Moderátor Chamurappi: Neposílej ho pořád zakládat inzerát. Nesmí. Viz minule.
|
||
Yuff.3 Profil |
#9 · Zasláno: 16. 8. 2014, 22:36:02
Virtus
Prosím ťa, môžem mi sem napísať ten kód? :D |
||
Kubo2 Profil |
#10 · Zasláno: 17. 8. 2014, 20:58:39
Yuff.3:
Úprimne, mám pocit, že Virtus nemá s týmto vláknom absolútne nič spoločné. Poznáš pravidlá, preto ti navrhujem, aby si sa nimi začal riadiť. |
||
lionel messi Profil |
#11 · Zasláno: 17. 8. 2014, 21:00:05
Kubo2:
Nejako sa opakujeme. :-) |
||
Yuff.3 Profil |
:D Admin a tieto ich príspevky majú aký význam?? :D Toto nebudeš dávať do koša? :D
Moderátor Alphard: Přínosné nejsou, nicméně podobných je tady víc. Ještě si to rozmyslím.
V každém případě se pokuste být konstruktivní. Vhodný způsob, jak oživit vlákno, je napsat, že jste alespoň trochu pokračil sám. |
||
Časová prodleva: 10 let
|
0