Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][HTML]Pętla while i dynamiczne tworzenie stron
obelix94
post
Post #1





Grupa: Nieautoryzowani
Postów: 141
Pomógł: 0
Dołączył: 30.09.2008
Skąd: Gdańsk

Ostrzeżenie: (20%)
X----


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.


--------------------
Zawieszony w pisaniu przez @mike - pisze na PW. <?php echo !$lubie.'moderatorow' ?>
Jak to czytasz, to współczuj mi. Przebolewam za swe grzechy...
Współczujcie...
Gdzie to współczucie?
Go to the top of the page
+Quote Post
artur_dziocha
post
Post #2





Grupa: Zarejestrowani
Postów: 320
Pomógł: 53
Dołączył: 18.09.2007
Skąd: Radom

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


poczytaj i poszukaj o pagination:)
Nospor miał taką klase.
Pozdrawiam
Go to the top of the page
+Quote Post
obelix94
post
Post #3





Grupa: Nieautoryzowani
Postów: 141
Pomógł: 0
Dołączył: 30.09.2008
Skąd: Gdańsk

Ostrzeżenie: (20%)
X----


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.


--------------------
Zawieszony w pisaniu przez @mike - pisze na PW. <?php echo !$lubie.'moderatorow' ?>
Jak to czytasz, to współczuj mi. Przebolewam za swe grzechy...
Współczujcie...
Gdzie to współczucie?
Go to the top of the page
+Quote Post
timon27
post
Post #4





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

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


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

Ten post edytował timon27 15.12.2008, 23:03:40
Go to the top of the page
+Quote Post
obelix94
post
Post #5





Grupa: Nieautoryzowani
Postów: 141
Pomógł: 0
Dołączył: 30.09.2008
Skąd: Gdańsk

Ostrzeżenie: (20%)
X----


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?

Ten post edytował obelix94 15.12.2008, 23:28:44


--------------------
Zawieszony w pisaniu przez @mike - pisze na PW. <?php echo !$lubie.'moderatorow' ?>
Jak to czytasz, to współczuj mi. Przebolewam za swe grzechy...
Współczujcie...
Gdzie to współczucie?
Go to the top of the page
+Quote Post
ziqzaq
post
Post #6





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

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


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. ?>
Go to the top of the page
+Quote Post
timon27
post
Post #7





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

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


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)){
Go to the top of the page
+Quote Post
obelix94
post
Post #8





Grupa: Nieautoryzowani
Postów: 141
Pomógł: 0
Dołączył: 30.09.2008
Skąd: Gdańsk

Ostrzeżenie: (20%)
X----


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.

Ten post edytował obelix94 16.12.2008, 22:33:52


--------------------
Zawieszony w pisaniu przez @mike - pisze na PW. <?php echo !$lubie.'moderatorow' ?>
Jak to czytasz, to współczuj mi. Przebolewam za swe grzechy...
Współczujcie...
Gdzie to współczucie?
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 02:38