Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][MySQL][PHP]Problemowa paginacja
Forum PHP.pl > Forum > Przedszkole
viamarimar
Pierwszy problem to Undefined index, w sumie standardowy ale kod nie reaguje na isset() ani empty() wiec nie kapuje juz czemu tak a nie inaczej
Problem 1
  1. Notice: Undefined index: c in C:\VertrigoServ\www\portfolio\include\panel\uzytkownicy.php on line 278
  2. Call Stack
  3. # Time Memory Function Location
  4. 1 0.0010 349584 {main}( ) ..\admin.php:0
  5. 2 1.0391 802056 include( 'C:\VertrigoServ\www\x\include\panel\uzytkownicy.php' ) ..\admin.php:50
  6. [1]
  7.  
  8. ( ! ) Notice: Undefined index: c in C:\VertrigoServ\www\xo\include\panel\uzytkownicy.php on line 278
  9. Call Stack
  10. # Time Memory Function Location
  11. 1 0.0010 349584 {main}( ) ..\admin.php:0
  12. 2 1.0391 802056 include( 'C:\VertrigoServ\www\x\include\panel\uzytkownicy.php' ) ..\admin.php:50
  13. [2]
  14.  
  15. ( ! ) Notice: Undefined index: c in C:\VertrigoServ\www\x\include\panel\uzytkownicy.php on line 282
  16. Call Stack
  17. # Time Memory Function Location
  18. 1 0.0010 349584 {main}( ) ..\admin.php:0
  19. 2 1.0391 802056 include( 'C:\VertrigoServ\www\x\include\panel\uzytkownicy.php' ) ..\admin.php:50

Problem 2
Dość nietypowe, zarazem logiczne, paginacja jest z neta ale podrasowana, kod odpowiedzialny za wyswietlanie to ten sam w ktorym jest blad pierwszy. Standardowa paginacja wyglada chyba inaczej? Na zasadzie 1,2..3,4, itd.. bez rozdwojenia na dwa miejsca kropkowe?


Kod:
  1. #nie wyswietlanie paginacji jak jest mniej niz 5
  2. $zap2 = mysql_query("SELECT * FROM ".$prefix."users ") or die (mysql_error());
  3. $ile = mysql_num_rows($zap2);
  4. if($rank['users_rank'] == 'root'){
  5. if($ile<=0){ info('Brak użytkowników...');}
  6. if($ile<=5){}
  7. else{
  8. echo '<ul class="pagination">';
  9. if($page > 1 ) echo "<li><a href=\"".$script_name."?s=user&a=wys&page=".$prev."&c=".$_GET['c']."\">Poprzednia</a></li>";
  10. if ($forstart > 1) echo "<li><a href=\"".$script_name."?s=user&a=wys&page=?page=1&c=".$_GET['c']."\">[1]</a></li>";
  11. if ($forstart > 2) echo "<li><span>...</span></li>";
  12. for($forstart; $forstart < $forend; $forstart++){
  13. if($forstart == $page){
  14. echo "<li class=\"current\">";
  15. }else{
  16. echo "<li>";
  17. }
  18. echo "<a href=\"".$script_name."?s=user&a=wys&page=".$forstart."&c=".$_GET['c']."\">[".$forstart."]</a></li>";
  19. }
  20. if($forstart < $allpages) echo "<li><span>...</span></li>";
  21. if($forstart - 1 < $allpages) echo "<li><a href=\"".$script_name."?s=user&a=wys&page=".$allpages."&c=".$_GET['c']."\">[".$allpages."]</a></li>";
  22. if($page < $allpages) echo "<li><a href=\"".$script_name."?s=user&a=wys&page=".$next."&c=".$_GET['c']."\">Następna</a></li>";
  23. echo "</ul>";
  24. }
  25. }



Paginacja edytowana z :

http://www.forum.legalne.info.pl/phpmysqlpaginacjastronicowanie-szybko-prosto-i-efektownie-gratis-centrowanie-float-t40261.html
SmokAnalog
Co ten parametr "c" oznacza?

Paginacja jest jedną ze standardowych. W przypadku 4 podstron faktycznie nie powinieneś mieć nigdy trzech grupek, ale w przypadku 17-tu to jest zrozumiałe i wygodne.
viamarimar
przekazywane jest w nim forma sortowania na zasadzie

  1. if(isset($_GET['s']) && $_GET['s']=='user' && isset($_GET['a']) && $_GET['a']=='wys' && isset($_GET['c']) && $_GET['c']=='sakt' ){
  2. ...


tylko jak bym wyczyscil zmienna

$_GET['c'] = '';

na poczatku nawet co skasuje blad, wtedy przestanie sorowanie dzialac

// co do wygladu zawsze dziwne mi sie to wygladalo bo z tej formy paginacji kozystam juz ktorys raz, dlatego pytam
SmokAnalog
To zrób coś na zasadzie:
  1. $nazwaZmiennej = isset($_GET['c']) ? $_GET['c'] : 'domyślnie';

Nie zrozumiałem co to jest "forma sortowania", więc sobie nazwij $nazwaZmiennej jakoś sensownie. Unikaj nazw typu a, s i c, bo kod robi się nieczytelny. Jak zrobisz tę zmienną, to pozamieniaj wszystkie odwołania do $_GET['c'] na tę zmienną.
viamarimar
dokladnie forma czyli jak wyzej

np. sakt = czyli sortowanie po aktywnosci uzytkownika, skotowo ( dlatego ludzie nie bawia sie czyims kodem) heh..

Czy da sie to jakos inaczej zapisac, bo to rozwiazuje niby sprawe:
  1. $nazwaZmiennej = isset($_GET['c']) ? $_GET['c'] : 'domyślnie';

chodzi o to bez ? : nigdy nie rozumiem tej konwencji

bo normalnego ifa nie wpisze sie chyba do zmiennej?
na zasadzie

  1. $nazwaZmiennej = if(isset($_GET['c'])){
  2. $_GET['c']
  3. }
  4. else{
  5. 'domyślnie'
  6. }

?
SmokAnalog
Ten zapis:
  1. $nazwaZmiennej = isset($_GET['c']) ? $_GET['c'] : 'domyślnie';

To jest DOKŁADNIE to samo co:
  1. if (isset($_GET['c'])) {
  2. $nazwaZmiennej = $_GET['c'];
  3. } else {
  4. $nazwaZmiennej = 'domyślnie';
  5. }

Możesz zapisać to if-em, ale w takich przypadkach bardziej elegancko jest użyć operatora ternary (nie wiem czy ma polską nazwę), bo nie powtarzasz lewej części wyrażenia. Przypisujesz albo to, albo to - w zależności od warunku.
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.