Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pokazywanie wierszy
kirov
post
Post #1





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 23.03.2003
Skąd: Lubartów !

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


Wyświetlanie wierszy z bazy danych

Mam sobie skrypcik:
Kod
<?



$plik = file("$dzial/baza_.dat"); //Otwieram tablice

$linia = count($plik);  // Zliczam linie

if($str=="") $max=5; // Jeśli nie podaje strony to wyświetlam 5 lini

else $max=$str*5; // i tutaj mam problem 1

for($i=0; $max>$i; $i++) {  //pętelka chyba zle zrobiona problem 2

$baza=explode('||',$plik[$i]);

echo("To jest linia: $i");  

}

$max1=ceil($linia/5); //Generujemy linki 1, 2 , 3

for($z=1; $max1>$z; $z++) {

echo("[<a href=link.php?str=$z>$z</a>] ");

}

?>



Pomóżcie mi poprawić ten kod.
Jeśli wchodzę na stronę bez parametru lub z parametrem ($str=1) wyświetla mi się 5 pierwszysch lini. Jak zrobić aby przy wejściu z parametrem $str=2 wyświetliło mi kolejne 5 lini (linie od 5-10) itd.

A potem wygenerować linki 1, 2, 3, 4 ... w zależności od ilości lini. Pamiętając że każdy link wyświetli 5 lini z bazy danych.
A i jeszcze jedno, gdy mam 11 lini to wyświetla mi 1 i 2 link dobrze a 3 pobierze od 10-15 jak go ograniczyć aby przy ostatnim linku wyświetlał od np 10-11(11- ilość wszystkich lini)
No i żeby za każdym razem podawało rzeczwisty numer lini. Jeśli pokazemy str=3 to wyświetli 10-15 i dla kazdej wyświetlonej lini podaje jej rzeczywisty numer czyli To jest linia: 10, To jest linia: 11. To jest linia: 12 itd........

HELP PLEASE HELP
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
KaMeLeOn
post
Post #2





Grupa: Zarejestrowani
Postów: 680
Pomógł: 0
Dołączył: 1.10.2002
Skąd: Wrocław

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


[php:1:304407392b]<?php
$plik = file("$dzial/baza_.dat");
$wiersze = count($plik);
$liczba_linii = 5;

if( empty($_GET['str']) || ($_GET['str']==1) ){
$start=0;
$end=$liczba_linii-1;
} else {
$start = ( (int)($_GET['str']) - 1)*$liczba_linii;
$end = ( (int)($_GET['str'])*$liczba_linii) - 1;
$end = ( $end > $wiersze) ? $wiersze : $end;
}

for($i=$start ; $i<$end ; $i++) {
$baza = explode('||', $plik[$i]);
echo("To jest linia: $i");
// itd...
}

// itd...
[/php:1:304407392b]
Dalej sobie poradzisz....
Go to the top of the page
+Quote Post
kirov
post
Post #3





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 23.03.2003
Skąd: Lubartów !

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


Dzięki, ten skrypcik działa jak trza ale trzeba go jeszcze przerobić aby czytał lnie z bazy od tyłu. Ja zrobiłem coś takiego ale mam problem z określeniem wartości początkowej i końcowej pętli dla str>1

Kod
$plik = file("baza.dat"); //Plik

$wiersze = count($plik);  //Ilość lini

$liczba_linii = 6; //Ilość wyśwrtleń



if(($str=="") || ($str==1)) {  //Jeśli nie ustalmy strony lub str=1

  $start=$wiersze-1;  //Wartość dla rozpoczęcia pętli

  $end=$wiersze-$liczba_linii; } //Wartość dla zkończenia

#########Wszystko powyżej działa idealnie ##########################



else  {  //Tutaj mam problem z ustaleniem wartości

  $start = $wiersze-(($str-1)*$liczba_linii); //Dla startu

  $start = $wiersze-$start;

  $end = $wiersze-($start+(($str-1)*$liczba_linii)); // I dla końca

  $end = ( $end < $wiersze) ? $end : $wiersze; }



for($i=$start; $i>$end; $i--) { //Pętelka

echo("baza danych itd."); }


Opis skryptu: SKrypcik Ma pobierać co 6 lini z bazy danych txt od tyłu aż skończy się plik. Dla wartości str=0 lub 1 pętla działa dobrze pobiera 6 ostatnich lini. Ale mam problem z ustaleniem wartości początkowej i końcowej w zależności od przeglądanej strony czyli str=2, 3 itd. Wiecie jak to zrobić? Proszę bardzo mi jest to potrzebne.
Go to the top of the page
+Quote Post
KaMeLeOn
post
Post #4





Grupa: Zarejestrowani
Postów: 680
Pomógł: 0
Dołączył: 1.10.2002
Skąd: Wrocław

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


[php:1:9ba7a2294b]<?php
$plik = file("baza.dat");
$plik = array_reverse($plik);
?>[/php:1:9ba7a2294b]
Umieść to na początku kodu który ci dałem...

PS. Umieszczaj kod w znacznikach php.
Go to the top of the page
+Quote Post
kirov
post
Post #5





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 23.03.2003
Skąd: Lubartów !

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


Ale nie oto mi chodzi, muszę zachować rzeczywistą linie w pliku txt. A reverse odwróci mi baze danych i lipa. LInia ostatnia będzie linią 0, może masz inny pomysł ?
Go to the top of the page
+Quote Post
KaMeLeOn
post
Post #6





Grupa: Zarejestrowani
Postów: 680
Pomógł: 0
Dołączył: 1.10.2002
Skąd: Wrocław

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


A po co chcesz zachowywać rzeczywistą linię ?
Go to the top of the page
+Quote Post
kirov
post
Post #7





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 23.03.2003
Skąd: Lubartów !

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


Bo musi tak niestety być (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
kirov
post
Post #8





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 23.03.2003
Skąd: Lubartów !

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


Umiałbyś to zrobić (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
Please help
Go to the top of the page
+Quote Post
KaMeLeOn
post
Post #9





Grupa: Zarejestrowani
Postów: 680
Pomógł: 0
Dołączył: 1.10.2002
Skąd: Wrocław

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


Odwróć tablicę (TRUE nie zmienia kluczy w tablicy)

[php:1:61b0a0a0af]<?php
$plik = file('nazwa_pliku');
$plik = array_reverse($plik, TRUE);
?>[/php:1:61b0a0a0af]
Go to the top of the page
+Quote Post

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: 23.08.2025 - 06:30