![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 22.01.2011 Skąd: Murowana Goślina Ostrzeżenie: (0%) ![]() ![]() |
Cześć. Nie mam pojęcia jak to zrobić, a siedzę przy tym już od 15:00 =/ Algorytmów już wymyślać też próbowałem masę, ale na nic.
Np. jednym z nich miało być: zalóżmy ze jest strona [2] wtedy maximum=9*numerstrony= 18 minimum=maximum-9=9 for (i=minimum;i=maximum;i++) tutaj daje funkcje która wyświetla ci przedmiot i jako argument podajesz zmienna i) Chodzi o to, że mam skrypt wyświetlający ilość przedmiotów na stronie. Maksymalnie na 1 stronie może mieścić się 9 przedmiotów (dodam jeszcze, że są pobierane z bazy), i kiedy umieścimy 10 przedmiot, to powinien znajdować się na kolejnej stronie. Powinniśmy widzieć przedmiot z numerem 10, ale tlyko ten 1 przedmiot, bez reszty 9, które są na stronie jeden. I tak samo za każdym razem, aby osiągnąć efekt podobny do tego: Pierwsza strona, 1,2,3,4,5... 100,101,102, Ostatnia strona. Użyłem czegoś takiego.
Jednak nawet to nie działa, poza tym jest niedokończone, gdyż i tak by nie wyświetlało na kolejnych stronach przedmiotów, które są zmienną $i. Pokaże może kawałek kodu:
Wie ktoś jak zrobić, aby przedmioty $i były wyświetlane odpowiednio na każdej stronie po 9 sztuk? Powiedzmy, że dodaje w bazie 22 przedmioty. na stronie pierwszej powinno znajdować się 9, na drugiej 9, i na trzeciej 4. Nie mogę wymyślić, to jest zbyt dla mnie skomplikowane. Przeglądałem angielskie fora, jednak tam też sporo rzeczy nie potrafię zrozumieć. Będę bardzo wdzięczny. Ten post edytował waqmaz 19.05.2011, 21:41:06 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 23 Dołączył: 5.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze masz dwie dane: 1 - ilość przedmiotów w ogóle, i 2 - ile przedmiotów wyświetlać na jednej stronie. Nazwę je $ile_ogolnie i $ile_na_stronie (> 0). Teraz musisz wygenerować ilość stron: $ilosc_stron (te Twoje[1][2] ...) - trzeba tu zadbać o to co się stanie jeśli przedmiotów będzie 0, albo gdy zmieszczą się na jednej stronie.
Co tym osiągamy? Dla 0 przedmiotów w ogóle i np. 4 przedmiotów na stronę mamy $ilosc_stron=0. Dla 1 przedmiotów w ogóle i 4 przedmiotów na stronę mamy $ilosc_stron=1. ... Dla 4 przedmiotów w ogóle i 4 przedmiotów na stronę mamy $ilosc_stron=1. Dla 5 przedmiotów w ogóle i 4 przedmiotów na stronę mamy $ilosc_stron=2. Teraz wyświetlanie. Masz dany dodatkowo $numer_strony (bo user kliknął na którąś z możliwości [1][2] ...). Najpierw obliczasz $min i $max nie przejmując się ilością przedmiotów (tak jak by ich było nieskończenie dużo).
Te obliczenia abstrahują od ilości przedmiotów. Np. masz 1 przedmiot a wyświetlasz 4 przedmioty na stronę. Chcesz znać $min i $max dla drugiej strony (teoretycznie) bo dla jednego przedmiotu nic nie powinno się wyświetlić na drugiej stronie. Wtedy oczywiście $min=5 a $max=8. Teraz wyświetlenie. Mamy dane: $ile_ogolnie, $min, $max (bo obliczyliśmy je dla zadanej strony ...)
Tutaj while jedzie od $min do $max patrząc jednocześnie czy nie zostanie przekroczona liczba przedmiotów ($ile_ogolnie). W środku while operujesz sobie $i, która to zmienna reprezentuje kolejno numery przedmiotów, które powinny się wyświetlić. Np. dla $ile_ogolnie=12 $ile_na_stronie=5 i dla trzeciej strony: $numer_strony=3 zostaną obliczone $min=11 $max=15 a zatem while wykona swój blok dwa razy - $i będzie wynosiło kolejno 11 i 12. =============================== Teraz można to uporządkować w dwa for: $n - numer strony $ile - ile na stronie $o - ilość przedmiotów w ogóle $is - ilość stron
Ten post edytował aeaeae 20.05.2011, 01:46:36 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 18:02 |