Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php + txt] stronicowanie problem
Forum PHP.pl > Forum > Przedszkole
faith
  1. <style>
  2. .cwtop
  3. {
  4. background-color: #c0c0c0;
  5. font-size: 10px;
  6. text-align: center;
  7. font-weight: 600;
  8. }
  9. .cw
  10. {
  11. background-color: #e5e5e5;
  12. text-align: center;
  13. }
  14.  
  15. .cwtable
  16. {
  17. font-size: 10px;
  18. font-family: Verdana, Arial, Helvetica;
  19.  font: Verdana, Arial, Helvetica; 
  20. }
  21. .members
  22. {
  23. font-size: 10px;
  24. font-family: Verdana, Arial, Helvetica;
  25.  font: Verdana, Arial, Helvetica; 
  26. width: 370;
  27. }
  28.  
  29. .won
  30. {
  31. font-family: verdana;
  32. font-size: 10px;
  33. color: green;
  34. }
  35.  
  36. .lost
  37. {
  38. font-family: verdana;
  39. font-size: 10px;
  40. color: red;
  41. }
  42. a
  43.  {  
  44. text-decoration: none 
  45. font-size: 10px;
  46. font-family: Verdana, Arial, Helvetica;
  47. font: Verdana, Arial, Helvetica; 
  48. color: black;
  49.  
  50. body
  51.  {  
  52. text-decoration: none 
  53. font-size: 10px;
  54. font-family: Verdana, Arial, Helvetica;
  55. font: Verdana, Arial, Helvetica; 
  56. color: black;
  57. }
  58. </style>
  59.  
  60.  
  61.  
  62.  
  63. <?
  64.  
  65. echo "<table class='members'><tr><td class='cwtop'>Date</td><td class='cwtop'>Opponent</td><td class='cwtop'>Status</td><td class='cwtop'>Score</td></tr>";
  66.  
  67. //ile pozycji na stronie ma zostać wyświetlonych
  68. $max_poz="15";
  69.  
  70.  
  71. if($page==""){
  72. $page="1";
  73. $start="0";
  74. }
  75. else{
  76. //jeśli nie określamy start pętli w/g strony
  77. $start=$page*$max_poz;
  78. $start=$start-$max_poz;
  79. }
  80.  
  81. $file = file("wars.txt");
  82. $file = array_reverse($file);
  83. for ($index=$start; $index < $page*$max_poz; $index++)
  84. {
  85. $gr = split("|", chop($file[$index]));
  86. $wars = explode("|", $file[$index]);
  87.  
  88. //wyświetlamy dane
  89.  
  90.  echo "<tr>";
  91.  echo "<td class='cw'>" . $wars[0] . " </td>";
  92.  echo "<td class='cw'>" . $wars[1] . " </td>";
  93.  echo "<td class='cw'>" . $wars[3] . "<br>" . $wars[4] . "</td>";
  94.  echo "<td class='cw'>" . $wars[2] . " </td>";
  95.  echo "</tr>";
  96.  
  97. }
  98. echo "</table>";
  99. ?>
  100.  
  101. <hr> page:
  102. <?
  103.  
  104. $el=count($file);
  105.  
  106. $stron=ceil($el/$max_poz);
  107.  
  108. for ($index=1; $index < $stron; $index++) {
  109.  
  110. if($page==$index){
  111.  
  112. echo"$index";
  113. }
  114. else{
  115.  
  116. echo "<a href='showwars1.php?page=$index'>$index</a>";
  117.  
  118. }}
  119. ?>


Witam!

Oto kod skryptu, odczytuje on dane z pliku, wars.txt a nastepnie umieszcza je w tabeli [po 15 wersow] problem polega na tym, ze wyswietla on tylko pełne 15 wpisow. np jesli w pliku jest 38 wpisow, to skrypt wyswietli tylko 30.. 2x15 a pozostale 8 jest nie widoczne ;/

byl bym wdzieczny gdyby ktos mogl poprawic skrypt, oraz pokazac gdzie byl blad :}

z gory dzieki

pozdrawiam Faith!

//edit:

zalaczam czesc pliku z danymi:

Kod
02.01.2005|{d*r*t} vs $G*O*Q$|1:2|<font class="lost">Lost</font>|League|0
03.01.2005|{d*r*t} vs GenX|0:3|<font class="lost">Lost</font>|League|1
16.01.2005|{d*r*t} vs EVOL|0:3|<font class="lost">Lost</font>|League|2
23.01.2005|{d*r*t} vs nOOb|3:0|<font class="won">Won</font>|League|3
30.01.2005|{d*r*t} vs *(Legion)*|3:0|<font class="lost">Lost</font>|League|4
strife
Kod jest napisany tragicznie, więc pozwoliłem sobie go uczynić wyraźniejszym no i naprawiłem ten Twój błąd, przeanalizuj kod winksmiley.jpg

Nie mogę tutaj na forum dać, ponieważ nie poprawnie działa tag php.

[Źródło].
faith
wielkie dzieki za pomoc :}

wszystko [no prawie] dziala bez zarzutu ;]

jedyne co zostalo dodane to nie wyswietlanie pustych wierszy na ostatniej stronie :} tzn. w wars.txt jest 38 lini z danymi. twoja wersja wyswietla 3 strony 3x15 wierszy tabeli ;] wiec sa 2 tabele pelne a 3 strona ma 8 wierszy zapelnionych, a 7 pustych :}

poprawione przez znajomego wyglada tak :}

  1. <?
  2.  
  3. $page = $_GET['page']; 
  4.  
  5. echo '<table class='members'>
  6. <tr>
  7. <td class='cwtop'>Date</td>
  8. <td class='cwtop'>Opponent</td>
  9. <td class='cwtop'>Status</td>
  10. <td class='cwtop'>Score</td>
  11. </tr>';
  12.  
  13. $max_poz = '10';
  14.  
  15.  
  16.  
  17. if( empty( $page ) )
  18. {
  19. $page = '1';
  20. $start = '0';
  21.  
  22. }
  23. else
  24. {
  25.  
  26.  
  27. $start = $page * $max_poz;
  28. $start = $start - $max_poz;
  29.  
  30. }
  31.  
  32. $file = file( 'wars.txt' );
  33. $file = array_reverse( $file );
  34.  
  35. $el = count( $file );
  36.  
  37. if($el < $page * $max_poz)
  38. $stop = $el;
  39. else
  40. $stop = $page * $max_poz;
  41.  
  42.  
  43. for ( $index = $start; $index < $stop ; $index++ )
  44. {
  45.  
  46. $wars = explode('|', $file[ $index ] );
  47.  
  48.  
  49.  
  50. echo '<tr>';
  51. echo ' <td class='cw'>' . $wars[ 0 ] . ' </td>';
  52. echo ' <td class='cw'>' . $wars[ 1 ] . ' </td>';
  53. echo ' <td class='cw'>' . $wars[ 3 ] . '<br>' . $wars[ 4 ] . '</td>';
  54. echo ' <td class='cw'>' . $wars[ 2 ] . ' </td>';
  55. echo '</tr>';
  56.  
  57. }
  58.  
  59. echo '</table>';
  60.  
  61. ?>
  62. <hr> page:
  63. <?
  64.  
  65. $el = count( $file );
  66.  
  67. $stron = ceil( $el / $max_poz );
  68.  
  69. if ( ( $stron * $max_poz ) >= $el )
  70. {
  71. $fix++;
  72. }
  73.  
  74. for ( $index = 1; $index < ( $stron + $fix ) ; $index++ ) 
  75. {
  76.  
  77. if( $page == $index )
  78. {
  79. echo $index; 
  80. }
  81. else
  82. {
  83. echo '<a href='?page=' . $index . ''>' . $index . '</a>'; 
  84.  
  85. }
  86. }
  87. ?>


pozdrawiam faith :}
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.