Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL][MySQL][PHP]Problemowa paginacja
viamarimar
post
Post #1





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


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

Ten post edytował viamarimar 1.03.2015, 21:12:19
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
viamarimar
post
Post #3





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


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

Ten post edytował viamarimar 1.03.2015, 21:22:21
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #4





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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ą.
Go to the top of the page
+Quote Post
viamarimar
post
Post #5





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


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. }

?

Ten post edytował viamarimar 1.03.2015, 21:33:06
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #6





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 08:00