Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak przerobic to porcjowanie wynikow na stronie?
Forum PHP.pl > Forum > PHP
B3T0N
witam,

akurat w dziedzinie porcjowania wynikow mi strasznie cienko idzie 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. ?>
Edd_s
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 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 tongue.gif pozdrawiam smile.gif
Wave
Powiedz koledze że jest lama. biggrin.gif Bardziej sie nie dało sknocić skryptu, w każdym razie ja go nie trawie.
ernik
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 ...
B3T0N
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 ?
ernik
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
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.