Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]Pętla while i dynamiczne tworzenie stron
Forum PHP.pl > Forum > Przedszkole
obelix94
Ten problem już nie jest tak banalny jak wcześniej. Posiadam funkcję wyswietl_wszystko();. posiada ona tylko jedną zmienną $ilosc. Oto tresc tej funkcji:

  1. <?php
  2. //wszystkie cytaty
  3. $ilosc = 3;
  4. $plik = 1;
  5. echo '<table border="1">';
  6. while($plik <= $ilosc){
  7.  $cytat = file_get_contents($plik.'.txt');
  8.  $cytat_sformatowany = explode(';', $cytat);
  9.  echo '<tr><td>'.$cytat_sformatowany[0].'</td><td>'.$cytat_sformatowany[1].'</td><td>'.$cytat_sformatowany[2].'</td></tr>';
  10.  $plik++;
  11. }
  12. echo '</table>';
  13.  
  14.  
  15. ?>



Powyższy kod wyświetli tabelkę 3x3. W tym przpadku podałem zmienną $ilosc, bo akurat nie to jest najważniejsze. 

Chodzi mi o funkcję dynamicznego tworzenia stron, gdy $ilosc > 20. Czysto teoretycznie: jak jest powyżej 20, tworz nowa strone powtorz, jak znowu jest powyzej 20, to znowu utworz strone i powtórz i tak wkółko aż $plik <= $ilosc. Problem polega na utworzeniu tego typu stron, tak żeby z każdej można było przejść do innej. Może tłumaczę zawile... ale myślę że wszyscy zrozumieli o jaki efekt chodzi.
artur_dziocha
poczytaj i poszukaj o pagination:)
Nospor miał taką klase.
Pozdrawiam
obelix94
Wykazując swe chęci, znalazłem dwa artykuły na ten temat. Teraz tylko się przyjrzeć tamtemu kodowi i napisać coś podobnego. Jakby komuś leniwemu pomogło to tutu

Dziękuje. Jak ktoś ma jescze coś do dodania to czekam na prop.
timon27
W ten sposób:

Kod
<?php
//wszystkie cytaty

$ilosc = 3;
$plik = 20*($strona-1);
echo '<table border="1">';
while($plik <= $ilosc || $plik<20*($strona)){
$cytat = file_get_contents($plik.'.txt');
$cytat_sformatowany = explode(';', $cytat);
echo '<tr><td>'.$cytat_sformatowany[0].'</td><td>'.$cytat_sformatowany[1].'</td><td>'.$cytat_sformatowany[2].'</td></tr>';
$plik++;
}
echo '</table>';


?>

Strony:<?for($i=1;!<=$ilosc/20;$i++){echo("link do strony $i ")}?>


i uruchamiając z parametrem: strona=1
Przeanalizuj zmiany w kodzie
obelix94
Również dziękuje. Potestuje obydwie możliwości.

EDIT: Przeglądjac nasuneło mi się. !<=$ilosc/20. O co tu chodzi?
EDIT: Sprawdzałeś ten kodzik? Działał tobie?
ziqzaq
Cytat(obelix94 @ 15.12.2008, 23:04:22 ) *
Również dziękuje. Potestuje obydwie możliwości.

EDIT: Przeglądjac nasuneło mi się. !<=$ilosc/20. O co tu chodzi?
EDIT: Sprawdzałeś ten kodzik? Działał tobie?

Zwykła literówka, nic magicznego.
Prawdopodobnie kod miał być taki:
  1. <?php
  2. for($i=1;$i<=$ilosc/20;$i++){echo("link do strony $i ");}
  3. ?>
timon27
Cytat(ziqzaq @ 16.12.2008, 09:57:40 ) *
Zwykła literówka, nic magicznego.
Prawdopodobnie kod miał być taki:

Dzięki - faktycznie literówka.

Generalnie to chcesz podziału na strony. Stron więc będzie $ilosc/20 (a właściwie cecha z tego, ale i tak działa).
A na stronie nr "n" mają być wiersze od 20*n do 20*n +20 stąd linijki:
Kod
$plik = 20*($strona-1);
while($plik <= $ilosc || $plik<20*($strona)){
obelix94
W końcu wpadłem na pomysł, ze zwykłym while, explode i $_GET, oraz kilka obliczeń, dużo zmiennych, kilka stałych i może wyjdzie.

  1. <?php
  2. $ilosc_cytatow = 50; //$ilosc
  3. if($ilosc_cytatow >= 20){
  4.    $ilosc_stron = $ilosc_cytatow / 20;
  5.    $ilosc_stron_sformatowana = ceil($ilosc_stron);
  6.    $tablica_cytatow[0] = 'nic';
  7.    $licznik_tablicy_cytatow_od = 1;
  8.    $licznik_tablicy_cytatow_do = 1;
  9.    $liczba_od = 1;
  10.    $liczba_do = 20;
  11.    while($licznik_tablicy_cytatow_od <= $ilosc_cytatow || $licznik_tablicy_cytatow_do <= $ilosc_cytatow){
  12.        $tablica_cytatow['od'][$licznik_tablicy_cytatow_od] = $liczba_od;
  13.        $tablica_cytatow['do'][$licznik_tablicy_cytatow_do] = $liczba_do;
  14.        $liczba_od + 20;
  15.        $liczba_do + 20;
  16.        $licznik_tablicy_cytatow_do++;
  17.        $licznik_tablicy_cytatow_od++;
  18.        
  19.    }
  20. }
  21. echo $liczba_do.'<br>'.$liczba_od.'<br>'.$licznik_tablicy_cytatow_do.'<br>'.$licznik_tablicy_cytatow_od;
  22.  
  23. $licznik_od = $liczba_od;
  24. $licznik_do = $liczba_do;
  25. while($ilosc_cytatow <= $licznik_od || $ilosc_cytatow <= $licznik_do){
  26.    echo $tablica_cytatow['od'][$licznik_od];
  27.    echo $tablica_cytatow['do'][$licznik_do];
  28.    $licznik_od++;
  29.    $licznik_do++;
  30.    
  31. }
  32. ?>

Powyżej prototyp. Jak jest jakiś chętny kto ma chwilkę, to poprosze o sprawdzenie.
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.