Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Pobieranie 5 elementów z tablicy na stronę
Forum PHP.pl > Forum > Przedszkole
Morale
Plik tekstowy:
Cytat
1111||2222||
gggg||43fgr||


Biorę explode("||"....

I kto mi powie jak wyświetlić na stronie index.php?id=1 5 pierwszy elementów, na stronie index.php?id=2 kolejne 5 elementów itd...

Po prostu nie wiem jak rozdzielić by wyświetlało co 5 :/
dadexix
  1. <?php
  2. $arr = explode("||",$plik);
  3. $id = $_GET['id'] - 1;
  4. echo $arr[$id];
  5. ?>


index.php?id=1 - pokazuje pierwsze 5
index.php?id=2 pokazuje drugie 5
index.php?id=3 pokazuje trzecie 5
itd.
Morale
Gdzie tu jest napisane, że pobiera 5 ?
Cezar708
1. Co oznacza id i czego się tyczy? Jest to numer linii?

2. Explode wygląda tak:

Kod
array explode  ( string $delimiter  , string $string  [, int $limit  ] )


czyli możesz użyć domyślniej zmiennej limit... może to Ci pomoże.

3. ...a może to jest taka struktura a`la plik CSV, w takim wypadku skrypt będzie bardziej skomplikowany. Napisz dokładnie z jakich danych chcesz co otrzymać by dzięki temu lepiej Ci pomóc.

Pozdrawiam
Morale
z pliku tekstowego:

Cytat
1111||2222||
gggg||43fgr||


po 5 elementów na stronę
Cezar708
.. a co jest elementem?

bo w zasadzie ja na moje oko widzę 4 elementy... czyli "1111", "2222", "gggg", "43fgr"... poza tym za nic w świecie nie wiem jak to chciałbyś połączyć z id.. nie wiem co id ma określać.

Musisz trochę uściślić.
Morale
yyy, trochę źle powiedziałem.

Ma pobierać 5 linii na jedną stronę

Cytat
1111||2222||
gggg||43fgr||
3123123||124132413||
1121df||332323||
132fdfdsaaa22||jjfdsd||
3jhgfffr5||zzzaaaa||
Cezar708
... a id oznacza numer strony... no to w końcu się rozumiemy smile.gif


to tak:

  1. <?php
  2. $numerStrony = $_GET['id'] - 1; // łatwiej będzie operować na czymś co zaczyna się od zera
  3.  
  4. if ( $numerStrony < 0 ) $numerStrony = 0;
  5.  
  6. $offset = 5 * $numerStrony;
  7.  
  8. $arrLines = file("sciezka_do_pliku.txt");
  9. for( $i=$offset; $i<$offset+5; $i++){
  10. echo $arrLines[$i]."<br>\n";
  11. }
  12. ?>
Morale
A jak zrobić by wyświetlić od ostatniej linii bo jak zamieniam
  1. <?php
  2. $i++
  3. ?>
na
  1. <?php
  2. $i--
  3. ?>
to pokazuje się błąd 500.
Cezar708
nie sprawdzałem, ale zobacz, ewentualnie popraw małe błędy:

  1. <?php
  2. $numerStrony = $_GET['id'] - 1; // łatwiej będzie operować na czymś co zaczyna się od zera
  3.  
  4. if ( $numerStrony < 0 ) $numerStrony = 0;
  5.  
  6. $offset = 5 * $numerStrony;
  7.  
  8. $arrLines = file("sciezka_do_pliku.txt");
  9. $c = count($arrLines)-1;
  10. for( $i=$c; ($i>=0)&&($i>$c-$offset); $i--){
  11. echo $arrLines[$i]."<br>\n";
  12. }
  13. ?>
Morale
ma ktoś może inny pomysł ?
loff
Cytat(Morale @ 6.01.2008, 17:40:04 ) *
A jak zrobić by wyświetlić od ostatniej linii bo jak zamieniam
  1. <?php
  2. $i++
  3. ?>
na
  1. <?php
  2. $i--
  3. ?>
to pokazuje się błąd 500.

biggrin.gif biggrin.gif biggrin.gif

Cytat(Morale @ 8.01.2008, 16:37:33 ) *
ma ktoś może inny pomysł ?

dzizas krajst a samemu troche pomyśleć nie łaska? jeden ci napisał kod drugi podpowiedział ze jest funkcja odwracajaca tablice....eh lenistwo straszne

http://pl.php.net/manual/pl/function.array-reverse.php - nawet po polsku pisze....

moja wersja...
  1. <?php
  2. $numerStrony = $_GET['id']; 
  3.  
  4. $offset = 5 * ($numerStrony-1);
  5.  
  6. $arrLines = file("sciezka_do_pliku.txt");
  7.  
  8. $odwrocona = array_reverse($arrLines);
  9.  
  10. for( $i=$offset;$i<$offset+5; $i++){
  11. echo $odwrocona [$i]."<br>\n";
  12. }
  13. ?>


edit: srednika zapomniałem jednego biggrin.gif potem bys napisał ze nie działa hrhr winksmiley.jpg
Morale
sorry ale nie działa...
loff
Cytat(Morale @ 8.01.2008, 17:45:00 ) *
sorry ale nie działa...

hmm chyba cos tobie bo ja przed wysłaniem sprawdziłem i DZIAŁA. No chyba ze sie nie rozumiemy....
Morale
Nic się nie wyświetla jak biorę twój kod

tylko

  1. <br>
  2. <br>
  3. <br>
  4. <br>
  5. <br>


Plik wygląda tak:

Kod
lol||teskttst||1.12.2234||
kokokok||tekststt||1.11.2002||
loff
a u mnie wyglada to tak:

Cytat
<?php
kokokok||tekststt||1.11.2002||
lol||teskttst||1.12.2234||
Notice: Undefined offset: 2 in C:serwergaus.php on line 13
Notice: Undefined offset: 3 in C:serwergaus.php on line 13
Notice: Undefined offset: 4 in C:serwergaus.php on line 13
?>


czyli działa. Inna sprawa ze ja już nie wiem czy ty chcesz pokazywać na stronie po 5 lini z pliku zaczynajac wyswietlanie od konca czy moze cos innego. Jak cos innego to napisz o co chodzi, a jak o to to ci nie pomoge bo to jest działajacy kod.
mike
Rażąca niesamodzielność, oczekiwanie gotowca, nieopisywanie problemu (powtarzanie tępego "nie działa") i wreszcie crossposting.
Zamykam.
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.