Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [help]system portfolio, powyżej 3 prac na kolejnych podstronach
colinQ
post
Post #1





Grupa: Zarejestrowani
Postów: 340
Pomógł: 2
Dołączył: 25.12.2006

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


plik portfolio.php
  1. <script language=javascript>
  2.  function otworz(nazwa){
  3.  oknoObrazki=window.open(nazwa, 'oknoObr', 'width=640,height=480')
  4.  oknoObrazki.focus()
  5.  }
  6. </script>
  7. <?
  8. $szukaj = mysql_query("select * from portfolio");
  9. $ile = mysql_num_rows($szukaj);
  10. ?>
  11. <br><font face="Arial Black" style="font-size: 20px"><center>Portfolio</center></font><br><br>
  12.  
  13. <?
  14. for($i=1; $i <= $ile; $i++) {
  15. $praca = mysql_fetch_assoc($szukaj);
  16. ?>
  17.  
  18. <table width="400" align="center">
  19. <tbody>
  20. <tr>
  21. <td style="border: 1px solid rgb(221, 221, 221); padding: 5px; color: rgb(255, 102, 0); font-size: 10px;" colspan="2">
  22. <b><? echo $praca['klient']; ?></b>
  23. </td>
  24. </tr>
  25. <tr valign="top">
  26. <td style="padding: 5px; width: 150px;">
  27. <center>
  28. <img alt="" src="prace/<? echo $praca['screen']; ?>" width=130/>
  29. </td>
  30. <td style="padding: 5px; width: 250px; font-size: 10px; color: white;">
  31. <? echo $praca['opis']; ?>
  32. <br/>
  33. <br/>
  34. Wykorzystane technologie: <? echo $praca['technologie']; ?><br>
  35. <?
  36. if($praca['url'] !== "")
  37. echo '<a href='.$praca['url'].'><font color=orange>online</font></a>';
  38. ?>
  39. </td>
  40. </tr>
  41. <tbody>
  42. </table>
  43.  
  44. <?
  45. } ?>


I jak zrobić aby:

Gdy jest więcej niż 3 prace
wyświetlało tylko te 3
a na dole pokazało się
-1-2-3-4-
i żeby te kolejne były na kolejnych podstronach??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kubarek
post
Post #2





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 19.02.2007

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


ja to robię w ten sposób
stronicowanie zaczynasz od początku, najpierw od określenia ilości wierszy, danych na stronę:
  1. <?php
  2. $per_page = 10;
  3. ?>

dalej, pobierasz dane z bazy danych i liczysz ich ilość
  1. <?php
  2. $data = get_data(); // get_data to przykładowa funkcja, używasz normalnie swojego sposobu
  3. $data_count = count($data);
  4. ?>

w zmiennej $data zachowane są wszystkie wiersze pobrane z bazy danych i są w postaci tablicy, dzięki czemu łatwo zapisać ich ilość do zmiennej $data_count
następnie obliczasz ilość wszystkich stron, wzorek prosty - ilość wszystkich danych podzielona przez ilość danych na stronę
  1. <?php
  2. $all = ceil( $data_count / $per_page );
  3. ?>

masz już potrzebne dane, teraz wyświetlanie strony o odpowiednim numerze
  1. <?php
  2. $nr = 2; // dajmy na to stronę drugą
  3. $start = (int)( $nr * $per_page);
  4. $end = $start + $per_page
  5. ?>

numer wiersza początkowego to iloczyn konkretnego numeru strony i ilości wierszy na stronę, przykładowo: dla strony 2 i ilości wierszy na stronę 10, zaczynasz od wiersza z numerkiem 20 ( 2*10 ), dla strony 3 od wiersza z numerem 30, itd.
wiersz końcowy to suma wiersza startowego i ilości wierszy na stronę, wyżej podałem dlaczego
i wyświetlasz dane
  1. <?php
  2. for ($i = 0; $i < $data_count; $i++){
  3. if ($i >= $start && $i < $end) wyswietl_wiersz($data, $i); // znowu przykładowa funkcja i dobry sposób na oddzielenie logiki od wyglądu
  4. }
  5. /* funkcja wyswietl_wiersz moze wygladać np. tak:
  6. function wyswietl_wiersz($data, $nr){
  7.  echo $data[$nr]['tytul'].'<br />'.$data[$nr]['screen'];
  8. }
  9. */
  10. ?>

a jak zrobić panel z numerkami stron ? też prosto, wystarczy jedna iteracja
  1. <?php
  2. for ($j = 0; $j < $all; $j++){
  3. if ($nr == $j) // jeśli zmienna $j będzie równa aktualnie przeglądanemu nr strony ...
  4. wyswietl_numer_strony_bez_linka($j); //funkcja która wyświetli numer strony
  5. else
  6.  wyswietl_numer_strony($j);
  7. }
  8. ?>

to jest tylko jeden ze sposobów na to, ale mam nadzieję że coś wyjaśniłem ;-)
Go to the top of the page
+Quote Post

Posty w temacie
- colinQ   [help]system portfolio   17.08.2007, 09:00:36
- - Moli   Poszukaj na forum klasy nospora - navigator.   17.08.2007, 09:42:00
- - Babcia@Stefa   Witam, widzę że tu chodzi o stronicowani...   17.08.2007, 09:43:23
- - colinQ   Tak troszke nic nie kumam z tego twojego skryptu :...   17.08.2007, 10:15:26
- - in5ane   Ja ci zaraz pokaże mój kod i jest łatwiejszy w uży...   17.08.2007, 10:24:13
- - colinQ   a bym prosił o dostosowanie bo ja się nie łapie w ...   17.08.2007, 10:26:21
- - Hazel   To radziłbym zacząć się łapać, bo ludzie się stara...   17.08.2007, 12:34:56
- - skowron-line   No to moze napiszemy tobie jaka jest istota stroni...   17.08.2007, 12:46:04
- - colinQ   Próbuje pomyśleć... Ale z tego nic nie kumam.....   17.08.2007, 12:56:10
- - Hazel   Ale jaki masz problem? Skrypt działa, i jest w dod...   17.08.2007, 14:29:28
- - kubarek   ja to robię w ten sposób stronicowanie zaczynasz o...   17.08.2007, 19:46:22
- - DenVer89   kubarek - twój kod jak pokazuje numeracje np. ...   17.08.2007, 23:52:27
|- - barat   Cytat(DenVer89 @ 18.08.2007, 00:52:27...   18.08.2007, 09:12:15
- - matix   To za dużo pisania, nikt ci nie będzie tego robił,...   18.08.2007, 08:32:38
- - colinQ   Ale jak pobrać wiersze do tablic?? Bo jak ro...   20.08.2007, 11:17:19
- - Babcia@Stefa   Proszę oto kod, ale na przyszłość postaraj się sam...   20.08.2007, 19:47:59
- - colinQ   Do BabciaStefa przy konfiguracji: [PHP] pobierz...   21.08.2007, 07:55:27
- - Babcia@Stefa   Niestety jest kilka błędów w tym kodzie (nigdy go ...   22.08.2007, 07:21:50


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: 26.12.2025 - 13:55