NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Petr
Člen
Avatar
Petr:3.2.2017 10:02

Potřeboval bych pomoci s vyhodnocením podmínky.
Mám několik cyklů v sobě vnořených a každý má své parametry.
Existuje stránka v cyklu, kde maximální počet řádků, řádků ve stránce a počet stránek je znám předem.
Nyní volám libovolný řádek na stránce, protože znám jeho id. (Přímé volání z nadřazeného cyklu)
Potřebuji zjistit, na které stránce se dané id nachází pomocí matematického výpočtu.
Číslování je od 0.
Nevím si rady, jak určit zrovna vybraný interval, kde je dané id. Načítané parametry ukládám v SESSION, protože dochází i k novému volání html stránky. (Další služby)
Děkuji za pomoc.

 
Odpovědět
3.2.2017 10:02
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na Petr
vajkuba1234:3.2.2017 10:44

Zkus tady radeji postnout svuj kod, takhle ti nikdo asi varit z vody nebude.

Nahoru Odpovědět
3.2.2017 10:44
No hope, no future, JUST WAR!
Avatar
Petr
Člen
Avatar
Petr:3.2.2017 14:00

Díky za reakci, ale nejde mi o programátorské chyby, ale o logiku.
Mám stránku č.1, která obsahuje 3 řádky, id 0,1,2
Další stránka č.2 obsahuje 3 řádky id 3,4,5 atd.
Stránky se vypisují v cyklu s ručním posunem po stránkách. (Klikem na ikonu)

Situace:
V nadřazeném (časově) cyklu se nacházím na stránce 5 a vypíší se řádky v podřazeném cyklu a mne zajímá řádek id 4. Ale momentálně mám zobrazenu stránku 3 s id 6,7,8.
Takže chci zavolat podřazený řádek č.4, což není problém, ale chci také zobrazit jeho okolí, to znamená celou stránku č.2 to je s id 3,4,5.

Ale jak zjistím, že je to právě ve stránce č.2 ? Ne přes spoustu if(ů

(Počty a číslování jsou jen ilustrační.)

Vím jen, že jsou tři řádky na stránce, celkem 120 řádků ve 40 stránkách pro jeden cykl.

Podotýkám, že id jako fyzická adresa v databázi vůbec nesouvisí s pořadím vypsaných řádků.
Možná to lze řešit s podselectem v databázi, ale to zrovna nechci, protože zde možná nelze použít relaci.
Řešili jsme to kdysi dávno ve škole, tak možná někdo zareaguje.
Díky.

 
Nahoru Odpovědět
3.2.2017 14:00
Avatar
Pavel Jelínek:3.2.2017 14:46

Pokud každá stránka má n řádek a stránky se číslují od 0 (ne od 1), pak

  • j-tý řádek je na stránce s = n/j (celočíselné dělení s ignorováním zbytku)
  • a na této stránce jsou řádky s*n až s*n + (n-1)

Například pro n = 10 řádek na stránku je 23. článek na 23/10 = druhé stránce (řádky 0-9 jsou na nulté stránce) a na ní jsou řádky

  • od 2*10 = 20
  • do 2*10 + (10-1) = 29

Odpovídám správně na to, co ses ptal?
Pavel

PS: Pokud neodpovíš přímo na můj příspěvek, tak se asi nedozvím, že jsi reagoval a mám na co odpovědět...

 
Nahoru Odpovědět
3.2.2017 14:46
Avatar
Petr
Člen
Avatar
Petr:4.2.2017 8:05

Děkuji za navedení. Tušil jsem, že je to matematicky jednoduché.
s*n až s*n + (n-1)
stránka s = n/j
Má člověk někdy před očima vlčí mlhu.

 
Nahoru Odpovědět
4.2.2017 8:05
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.