Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak przerobic to porcjowanie wynikow na stronie?, ????
B3T0N
post
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 12.10.2003

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


witam,

akurat w dziedzinie porcjowania wynikow mi strasznie cienko idzie (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

mam maly problemik , gdyz kolega mi napisal skrypt porcjowania wynikow na stronie i jednak nie pasuje mi on , tzn wyswietlanie linkow do kolejnych stron nie jest dla mnie wygodne

jak przerobic ten kod aby bylo proste porcjowanie wynikow aby linki nawigacyjne wyswietlaly sie mniej wiecej tak :

<<poprzednia nastepna>>

a wyswietla sie w ten sposob:

1-5 6-10 11-15

oto kod
  1. <?php 
  2.  
  3.  
  4. //wyswietlanie linkow do stron z towarami
  5. $query2 = $queryTowary . ';';
  6. $query2 = ereg_replace (&#092;" FROM\", \", COUNT(*) FROM\", $query2);
  7. $query2 = ereg_replace (&#092;"SELECT DISTINCT\", \"SELECT\", $query2);
  8. $query2 = ereg_replace (&#092;" id_towaru, nazwa_towaru, cena_eu, id_kategorii, dostepnosc, krotki_opis, i
    d
  9. ntyfikator, nowosc, promocja,\", \"\", $query2);
  10.  
  11.  
  12. $result2 = mysql_query($query2) or die(\"zapytanie: ' $query2 ' zakonczone niepowodzeniem\");
  13. $ilosc_towarow = mysql_fetch_row($result2);
  14.  
  15.  
  16. for ($i=0; $i<$ilosc_towarow[0]; $i += $ilosc_towarow_na_stronie ){
  17. $j = $i + 1;
  18. $k = $i + $ilosc_towarow_na_stronie;
  19. if ($k > $ilosc_towarow[0]) {$k = $ilosc_towarow[0];}
  20. if ($i == $start) {?>
  21. <div align=\"left\"><font color=\"#F7E375\">&nbsp;<?php echo $j ?>-<?php echo $k ?> 
  22. <?php }//koniec if
  23. else{ ?>
  24. &nbsp;<a href=\"index.php?action=SzukanieWynik&start=<?php echo $i ?>&queryTowary=<?php echo base64_encode($queryTowary) ?>\"> 
  25. <?php echo $j ?>-<?php echo $k ?></a> 
  26. <?php }//koniec else
  27. }//koniec for
  28.  
  29. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Edd_s
post
Post #2





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 5.04.2005

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


Ja do porcjonowania napisałem sobie takie coś :
  1. <?php
  2.  $page = $_GET['stron'];
  3.  
  4. $conn_id=mysql_connect('serwer','uzytkownik','hasło') or die(mysql_error());
  5. mysql_select_db('nazwabazy',$conn_id) or die(mysql_error($conn_id));
  6.  
  7.  
  8. IF ($page == &#092;"\") {
  9.  $page=1;
  10. $sql = 'SELECT * FROM tabela WHERE warunek';
  11. $ras = mysql_query($sql,$conn_id);
  12. $ilzdj = mysql_num_rows($ras);
  13. $ilwyn = 20;
  14. $ilstr=$ilzdj / $ilwyn;
  15. If ($ilstr <= 1) {
  16. $sql = 'SELECT * FROM tabela WHERE warunek ORDER BY id DESC LIMIT 1,20';
  17. $res = mysql_query($sql,$conn_id);
  18. while($row = mysql_fetch_array($res)) {
  19. //prezentowanie wyników //
  20. }
  21. mysql_close($conn_id);
  22. }
  23.  
  24. elseif ($ilstr > 1 ) {
  25. echo ('<form action=gallery.php method=get>');
  26. echo '<center><input type=\"hidden\" name=stron value=\"2\">';
  27. $limg = 20;
  28. echo '<input type=\"hidden\" name=lim value=\"'.$limg.'\">';
  29. echo '<input type=image src=\"images/prawo.gif\" value=\"submit\"></center>';
  30.  
  31. $sql = 'SELECT * FROM tabela WHERE warunek ORDER BY id DESC LIMIT 1,20';
  32. $res = mysql_query($sql,$conn_id);
  33.  
  34.  
  35. while($row = mysql_fetch_array($res)) {
  36. // prezentownie wyników //
  37. }
  38. echo '<input type=image src=\"images/prawo.gif\" value=\"submit\"></center>';
  39. echo '</form>';
  40. mysql_close($conn_id);
  41. }
  42.  
  43. }
  44. else {
  45.  
  46.  
  47. $sql = 'SELECT * FROM tabela WHERE warunek';
  48. $ras = mysql_query($sql,$conn_id);
  49. $ilzdj = mysql_num_rows($ras);
  50. $ilwyn = 20;
  51. $ilstr=$ilzdj / $ilwyn;
  52.  
  53. If ($ilstr <= $page) {
  54. $limg = $page * 20 ;
  55. $limg = $limg - 20 ;
  56. $bpage = $page - 1;
  57. $elimg = $limg - 20;
  58. echo ('<form action=gallery.php method=get>');
  59. echo '<input type=\"hidden\" name=stron value=\"'.$bpage.'\">';
  60. echo '<input type=\"hidden\" name=lim value=\"'.$elimg.'\">';
  61. echo '<center><input type=image src=\"images/lewo.gif\" value=\"submit\"></center>';
  62. echo '</form>';
  63. }
  64.  
  65. If ($ilstr > $page) {
  66. $npage = $page + 1 ;
  67. $limg = $page * 20 ;
  68. $limg = $limg - 20 ;
  69. $elimg = $limg + 20;
  70. echo ('<form action=gallery.php method=get>');
  71. echo '<input type=\"hidden\" name=gname value=\"'.$_GET['gname'].'\">';
  72. echo '<input type=\"hidden\" name=stron value=\"'.$npage.'\">';
  73. echo '<input type=\"hidden\" name=lim value=\"'.$elimg.'\">';
  74. echo '<center><input type=image src=\"images/prawo.gif\" value=\"submit\"></center>';
  75. echo '</form>';
  76. }
  77. $slim = $_GET['lim'];
  78.  
  79. $sql = 'SELECT * FROM tabela WHERE warunekORDER BY id DESC LIMIT '.$slim.',20';
  80. $res = mysql_query($sql,$conn_id);
  81.  
  82. echo('<table border=\"1\" CELLSPACING=\"1\" CELLPADDING=\"5\">');
  83. while($row = mysql_fetch_array($res)) {
  84. //prezentacjia wyników//
  85. }
  86. If ($ilstr <= $page) {
  87. $limg = $page * 20 ;
  88. $limg = $limg - 20 ;
  89. $bpage = $page - 1;
  90. $elimg = $limg - 20;
  91. echo ('<form action=gallery.php method=get>');
  92. echo '<input type=\"hidden\" name=stron value=\"'.$bpage.'\">';
  93. echo '<input type=\"hidden\" name=lim value=\"'.$elimg.'\">';
  94. echo '<center><input type=image src=\"images/lewo.gif\" value=\"submit\"></center>';
  95. echo '</form>';
  96. }
  97.  
  98. If ($ilstr > $page) {
  99. $npage = $page + 1 ;
  100. $limg = $page * 20 ;
  101. $limg = $limg - 20 ;
  102. $elimg = $limg + 20;
  103. echo ('<form action=gallery.php method=get>');
  104. echo '<input type=\"hidden\" name=stron value=\"'.$npage.'\">';
  105. echo '<input type=\"hidden\" name=lim value=\"'.$elimg.'\">';
  106. echo '<center><input type=image src=\"images/prawo.gif\" value=\"submit\"></center>';
  107. echo '</form>';
  108. }
  109.  
  110.  
  111. mysql_close($conn_id);
  112.  
  113. }
  114.  
  115. }
  116. ?>

To będzie Ci wyświetlało po 20 kolejnych wyników, do kolejnych stron przechodzisz za pomocą strzałek (images/prawo.gif & images/lewo.gif) jeśli nie da się przejść do poprzedniej lub nastęnej strony strzałka się nie pojawia (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) . możesz nie używać przy pobieraniu danych z tabeli warunków(jak ci nie potrzebne to poprostu wszędzie je usuń), w //prezentacjia wyników// walisz np tabelkę czy coś tam co ci się podoba, powinno działać, aczkolwiek gdzieś coś może być nie tak bo to w całości jest jeszcze bardziej rozbudowany skrypt i jak skracałem to mogłem coś za dużo usunąć albo zostawić, jak coś nie będzie dziąłało to pisz (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Edd_s 8.04.2005, 14:14:58
Go to the top of the page
+Quote Post
Wave
post
Post #3





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 13.01.2005

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


Powiedz koledze że jest lama. (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Bardziej sie nie dało sknocić skryptu, w każdym razie ja go nie trawie.
Go to the top of the page
+Quote Post
ernik
post
Post #4





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 4.04.2005

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


a ja przerobilem skrypt z 2 posta na swoje potrzeby- tak, ---dziala narazie extra
  1. <?php
  2.  
  3. $connection=db_connect();
  4. $limit=5;//ile ma byc na stronie
  5. $page=$_GET[&#092;"page\"];
  6. $query = &#092;"SELECT * FROM users\";
  7. $exec = mysql_query($query,$connection);
  8. $users_number = mysql_num_rows($exec);
  9. $page_number=$users_number / $limit;
  10. if ($page == &#092;"\") {
  11. $page=1; 
  12. $query = &#092;"SELECT * FROM users ORDER BY id_users ASC LIMIT 1,$limit\";
  13. $exec = mysql_query($query,$connection);
  14. while($data = mysql_fetch_array($exec)) {
  15. //prezentowanie wyników //
  16. }
  17. print &#092;"<tr></tr><tr><td colspan=3>\";
  18. if ($page_number > 1 )
  19. create_link(&#092;"users.php?page=2\",\"NEXT\");
  20. print &#092;"</td></tr>\";
  21. }
  22. else { 
  23. $limit_user = $page * $limit ;
  24. $limit_user = $limit_user - $limit ;
  25. $query = &#092;"SELECT * FROM users ORDER BY id_users ASC LIMIT \".$limit_user.\",$limit\";
  26. $exec = mysql_query($query,$connection);
  27. while($data = mysql_fetch_array($exec)) {
  28. //prezentacjia wyników//
  29. }
  30. $p_page=$page-1;
  31. $n_page=$page+1;
  32. print &#092;"<tr><table width=\"100%\"><tr><td width=\"50%\">\";
  33. if ($page > 1) 
  34. create_link(&#092;"users.php?page=$p_page\",\"PREV\");
  35. print &#092;"</td><td width=\"50%\">\";
  36. if($page_number > $page) 
  37. create_link(&#092;"users.php?page=$n_page\",\"NEXT\");
  38. print &#092;"</td></tr></table></tr>\";
  39. } 
  40. ?>


pewnie mozna jeszcze skrocic, ale to pozniej bede dopieszczal ...

Ten post edytował ernik 9.04.2005, 13:14:32
Go to the top of the page
+Quote Post
B3T0N
post
Post #5





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 12.10.2003

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


ernik : no wyprobowalem Twoja przerobke i hmmmm :

- co to za funkcja $connection=db_connect(); ? wykrzacza na niej mi

- create_link("users.php?page=2","NEXT"); to samo

fatal errory

  1. <?php
  2.  
  3.  
  4. $limit=5;//ile ma byc na stronie
  5. $page=$_GET[&#092;"page\"];
  6. $query = &#092;"SELECT * FROM towary WHERE aktywny='1'\";
  7. $exec = mysql_query($query);
  8. $users_number = mysql_num_rows($exec);
  9. $page_number=$users_number / $limit;
  10. if ($page == &#092;"\") {
  11. $page=1; 
  12. $query = &#092;"SELECT * FROM towary ORDER BY nazwa_towaru ASC LIMIT 1,$limit\";
  13. $exec = mysql_query($query);
  14. while($data = mysql_fetch_array($exec)) {
  15. //prezentowanie wyników //
  16. }
  17. print &#092;"<tr></tr><tr><td colspan=3>\";
  18. if ($page_number > 1 )
  19. create_link(&#092;"users.php?page=2\",\"NEXT\");
  20. print &#092;"</td></tr>\";
  21. }
  22. else { 
  23. $limit_user = $page * $limit ;
  24. $limit_user = $limit_user - $limit ;
  25. $query = &#092;"SELECT * FROM towary ORDER BY nazwa_towaru ASC LIMIT \".$limit_user.\",$limit\";
  26. $exec = mysql_query($query);
  27. while($data = mysql_fetch_array($exec)) {
  28. //prezentacjia wyników//
  29. }
  30. $p_page=$page-1;
  31. $n_page=$page+1;
  32. print &#092;"<tr><table width=\"100%\"><tr><td width=\"50%\">\";
  33. if ($page > 1) 
  34. create_link(&#092;"users.php?page=$p_page\",\"PREV\");
  35. print &#092;"</td><td width=\"50%\">\";
  36. if($page_number > $page) 
  37. create_link(&#092;"users.php?page=$n_page\",\"NEXT\");
  38. print &#092;"</td></tr></table></tr>\";
  39. } 
  40. ?>


wywalilem zmienna $connection=db_connect() , ale dalej mi krzaczy na funkcji create link - co robie zle ?
Go to the top of the page
+Quote Post
ernik
post
Post #6





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 4.04.2005

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


funkcja db_connect() - nawiazuje polaczenie z baza danych wybiera baze i zwraca link do bazy...

funkcja create_link() - tworzy standardowy link <a href> - 1 wartosc link do czego, 2 wartosc co ma wyswietlac

obie funkcje sa zdefiniowane przeze mnie

czyli
  1. <?php
  2.  
  3. function db_connect(){
  4. $link=mysql_pconnect(&#092;"localhost\", \"write_usr\", \"write_usr\") or die (error(\"It is not possible to be connected with server MySQL\"));
  5. mysql_select_db(&#092;"database_name\") or die (error(\"It is not possible to be connected with database\"));
  6. return $link;
  7. }
  8. ?>


a 2 to zwykly a href odpowiednio spreparowany

czyli musisz polaczyc sie ze swoja baza i zastosowac linki do swoich stron + selecty maja byc dopasowane do twojej bazy

Ten post edytował ernik 9.04.2005, 19:53:18
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 13:10