Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] dodatkowe 10 linii - dodatkowa 1 strona
Forum PHP.pl > Forum > Przedszkole
camilost
Chodzi mi o takie coś, że jeśli w pliku tekstowym mamy np. 35 linii, to dodaje nam odpowiednio co 10 jedną nową stronę.
Dodamy coś do pliku i będzie 43 to dodaje kolejną.

$mstron, ile jest maksymalnie stron (na podstawie: 10linii - 1 strona)

Jak to zrobić? : <

  1. <?php
  2. $lines = file('strefa_humoru.txt', FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES);
  3. // for($i=0;$i<count($lines);$i++) Wyświetlanie wszystkich linii pokolei
  4. $mstron = 2;
  5. $strona = (!empty($_GET['strona'])) ? $_GET['strona'] : 1;
  6. if($_GET['strona'] > $mstron) {
  7. echo "<script type='text/javascript'>alert('Nie ma $strona strony -.-');</script>";
  8. die();
  9. }
  10. echo '<h1>Strefa humoru</h1>';
  11. echo "<div class='center'><h2><a href='#Strony'>Strona $strona z $mstron</a></h2></div>";
  12.  
  13. switch($strona) {
  14. case 1: {
  15. for($s1=0;$s1<10;$s1++) {
  16. echo '<div class="quotewrapper"><div class="quotecontent">';
  17. echo $lines[$s1];
  18. echo '</div></div><p></p>';
  19. }
  20. break;
  21. }
  22. case 2: {
  23. for($s2=10;$s2<count($lines);$s2++) {
  24. echo '<div class="quotewrapper"><div class="quotecontent">';
  25. echo $lines[$s2];
  26. echo '</div></div><p></p>';
  27. }
  28. break;
  29. }
  30. }
  31. ?>
zbig992
sprawdź ile masz linii w pliku, podziel tą liczbę przez 10 (z zaokrągleniem do góry - np. 43/10 da 5)

plik ładujesz funkcją file() do tablicy (tak jak masz teraz) i na stronie N wyświetlacz elementy z tej tablicy z zakresu (N*10-10) do N*10
camilost
Pomożesz ? : D Wychodzą mi ciągle liczby zmiennoprzecinkowe ^^
PS. Od wyświetlania tych stron mam już funkcję zrobioną tongue.gif
thek
Wiesz że istnieje funkcja ceil?
camilost
Teraz już wiem. Działa git ^^
Może while (nigdy nie używałem i nie potrafię) ^^
thek
To zrób ceil( count($lines)/10 ) i powstawiaj pliki o różnej ilości linii a potem powiedz ile będzie to wynosiło...

EDIT: A co do "ujęcia" w linie, to chyba sobie żartujesz smile.gif Zwykłego porównania nie potrafisz zrobić? Zauważ jak się zmienia miejsce startu i końca, w którym wstawiasz odpowiednio start i końce divów.

Strona 1: linie od 0 do 9
Strona 2: linie od 10 do 19
Strona 3: linie od 20 do 29

czyli... Tak... Wyświetlamy od ($numer strony - 1) * 10 do ($numer strony * 10) - 1 przy czym zwracamy uwagę czy nie wyskakuje żadna z wartości poza zakres. Cała "przewalenie trudna" matematyka w tym zadaniu. Przysiądź do niej bo masz naprawdę poważne braki... To błędy na poziomie logicznego myślenia, dodawania, odejmowania i mnożenia. Chyba wiesz jaki to poziom nauczania? Bo jak dla mnie początki podstawówki. Wiele lat temu w przedszkolu tego nawet już uczyli.
camilost
Cytat
EDIT: A co do "ujęcia" w linie, to chyba sobie żartujesz Zwykłego porównania nie potrafisz zrobić? Zauważ jak się zmienia miejsce startu i końca, w którym wstawiasz odpowiednio start i końce divów.


Chodzi Ci o to że ciągle daje w switch divy? (Jak dam poza switchem to nie będzie efekt jaki chciałem. (Każda linia ma być w osobnym divie : P

Ale chodzi mi o te wyświetlanie strony - strona 2 wyświetla wyniki do dwódziestu, strona ostatnia do końca
thek
Opisze słowami byś sam zrobił, choć napisanie tego w php kodem jest równie krótkie...
1. Wpisujemy sobie plik do zmiennej.
2. W pętli poruszamy się po każdym wierszu.
3. Jeśli wiersz jest z zakresu [($numer strony - 1) * 10, ($numer strony * 10) - 1 ] to dokładamy mu co trzeba.

To Ci wyświetli wszystkie linie z pliku i zaznaczy te, które chcesz. Jeśli chcesz wyświetlić tylko określone, bez całej reszty, to jedynie wybierasz z całego pliku wiersze z określonego przedziału.
camilost
@EDIT Kolega z innego forum pomógł.
pzd.
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.