Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Stronnicowanie według innych kryteriów
Forum PHP.pl > Forum > Przedszkole
Seba17
Wiec sprawa jest taka ze jezeli chciałbym zrobic stronnicowanie to nie ma problemu bo uzyłbym do tego Id i nie było by problemu tyko ze ja chce zrobic stronnicowanie i wyswietlanie na zasadzie ze jest to spis alfabetyczny według tytułu lub nicku uzytkownika i zeby na stronie wyswietlało 20 wyników i chciało przejsc do kolejnego. Coż na jednej stronie to nie problem ale na kilka to ja juz pomysłu nie mam dlatego czekam na jakies sugeestie sorka jezeli temat sie juz powtórzył ale go nie znalazłem.
windman
sposobów jest kilka...

- pobierasz dane z bazy już posortowane ORDER BY 'imie'
dodatkowo LIMIT ustawi Ci ile rekordów ma pobrać

- pobierasz wszystkie dane z bazy nieposortowane i ładujesz do tablicy $dane[imie], $dane[nazwisko]... i sortujesz tablice przed wyświetleniem.
tu masz o sortowaniu: http://www.egrafik.pl/porady/php-jak-sorto...-i-asocjacyjne/

polecam 2 sposób, do tego łatwo dorobisz sobie stronnicowanie.
Policzysz sobie ile jest elementów w tablicy, ustawisz ile chcesz mieć wyświetlonych wpisów na jednej stronie i już.

poradzisz sobie z resztą?

pozdrawiam
Seba17
Coż nie wiem czy sobie poradze ale bede probował coż jezeli dostane gotowe rozwiazanie to sie nic nie naucze. Ciesze sie ze chociaz dostałem rade i pomysł a teraz sproboje cos pokombinowac jak nie bedzie wychodzic to poprosze o jeszcze jakas rade. Coz a a na pomysł z tablicami tez wpadłem tylko ze jakos zabardzo ich nie potrafie uzyc dlatego staram sie ich nie uzywac.

Ale nic narazie dzieki za pomoc.
nowotny
Cytat(windman @ 13.02.2008, 18:19:31 ) *
polecam 2 sposób, do tego łatwo dorobisz sobie stronnicowanie.
Policzysz sobie ile jest elementów w tablicy, ustawisz ile chcesz mieć wyświetlonych wpisów na jednej stronie i już.

A ja nie polecam... po co przetwarzać tysiąc elementową tablicę jak potrzebne ci tylko 20 elementów... Pierwszy sposób jest lepszy...
Vexator
Cytat(nowotny @ 13.02.2008, 20:34:01 ) *
A ja nie polecam... po co przetwarzać tysiąc elementową tablicę jak potrzebne ci tylko 20 elementów... Pierwszy sposób jest lepszy...

a na dodatek, jeśli jest php i mysql na osobnych serwerach, to po co wszystko przesyłać? biggrin.gif
Seba17
Dobra tylko co w 1 sposobie bedzie identyfikatorem ze np strona 2 ma zacząc sie od tego a nie innego elementu questionmark.gif może jakies kawałki kodów bo z samych słow niewiele sklece.
nowotny
No jak masz kilka stron to linki do nich robisz w sposób: strona.php?page=nr_strony+liczba_el_na stronie... i już wiesz skąd zacząć...
Vexator
  1. SELECT * FROM tabela ORDER BY pierwszywiersz LIMIT 0, 25


0,25 to odkąd, dokąd ma pokazywać
Seba17
Wiem wiem miałem o tym pisac jak wybrac nr ale poszukałem w manualu MYSQL i tez to tam znalazłem ale dzieki teraz sproboje juz cos kombinowac.

Tylko poźniej problem jest taki jak te dane wyswietlic ot co questionmark.gif
nowotny
Cytat(Vexator @ 13.02.2008, 20:59:49 ) *
  1. SELECT * FROM tabela ORDER BY pierwszywiersz LIMIT 0, 25


0,25 to odkąd, dokąd ma pokazywać

Nie odkąd, dokąd, tylko od kąd, ile...


Cytat(Seba17 @ 13.02.2008, 21:11:23 ) *
Tylko poźniej problem jest taki jak te dane wyswietlic ot co questionmark.gif

Że jaki niby problem...? ja nie widzę żadnego... :/
Seba17
No dobra ja nie wiem. Probowałem czytac kombinowac ale nie znalazłem ani jak wybrać te dane i wyswietlic wiec jezeli moglibyscie dac jakis dobry kurs php gdzie te tablice sa dobrze opisane bo szczerze nie weim jak juz mam w $tablica = mysql_fetch_array($zapytanie); dane jak je wyswietlic lub jak wybrac wybrac jakies dane wiec prosiłbym o jakis kurs lub cos co pomoze mi to zrozumić.
Seba17
Dobra cos powoli zaczynam rozumiec ale jeste troche upierdliwy i nie lubie rzeczy które same z siebie sa a jak pytam sie dlaczego sa bo tak byc musi tak wiec chciałbym jeszcze prosic o w miare obszerne wytłumaczenie jednej rzeczy


  1. <?php
  2. $query = mysql_query("SELECT `Id`, `who`, `title` FROM `wiersze`");
  3. while($array = mysql_fetch_assoc($query)) {
  4. echo '<div class="test">'; 
  5. echo '<pre />';
  6. print_r($array);
  7. echo '</div>';
  8. }
  9. ?>


Interesuje mnie najbardziej w tym kawałku kodu ta pętla skad zapytanie wie ze ma przekoczyc do kolejnego rekordu w bazie a nie czytać tego samego czy moze mi ktos to wytłumaczyc bo szczerze wiem ze tak byc musi ale jeszcze dobrze by było jakbym mogł to zrozumieć. Bede wdzieczy za w miare szczegółowe wytłumaczenie mi tego

A ha i prosiłbym taki dość przystępnym jezykiem.
nowotny
Ok... załóżmy że w wyniku zapytania Mysql zwraca ci 5 rekordów... mysql_query" title="Zobacz w manualu PHP" target="_manual potrafi pobrać te rekordy ale tylko po jednym (nie pytaj mnie dlaczego winksmiley.jpg )... dlatego, żeby pobrać wszystkie rekordy musimy użyć pętli...

Teraz, zapis $array=mysql_fetch_assoc($query)) powoduje wpisanie do zmiennej $array danych jednego (z 5) rekordów... jednocześnie powoduje to przesunięcię wewnętrznego wzkaźnika w tych danych otrzymanych z bazy na drugi rekord... dzieje się to automatycznie i dzięki temu przy drugim wywołaniu funkcji mysql_fetch_assoc" title="Zobacz w manualu PHP" target="_manual pobierane są już dane drugiego rekordu, itd. aż do 5 rekordu... i teraz jeśli wywołamy funkcję mysql_fetch_assoc po raz szósty, zwróci ona nam FALSE, bo nie ma już więcej rekordów do przetworzenia... z tego właśnie korzysta pętla while, która wykonuje się dopóty, dopóki mysql_fetch_assoc zwraca jakieś konkretne dane... jak mysql_fetch_assoc zwróci FALSE pętla while się zatrzymuje... W środku pętli while możemy operować na danych jednego, konkretnego rekordu zwracanych w zmiennej $array...
Seba17
Dobrze duzo mi wytłumaczyłes ale dziwne skąd on wie ze nie ma pobierac tego samego rekordu tylko następny w pętli?? bo to mnie nurtuje najbardziej. I dziekuje bardzo za wczesniejsze wytłumaczenia.
nowotny
No to ci napisałem przecież... wewnętrzny wskaźnik w wynikach jest przesuwany na następny rekord za każdym wywołaniem mysql_fetch_assoc...
Seba17
Dzieki wielkie dałem rade jakos to zrobic chodz jeszcze sporo sie musiałem nagimanstykowac zeby dostosowac to do swoich wymagań ale dałem rade i dziekuje za wytłumaczenie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.