Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem ze skryptem porcjującym dane!
Forum PHP.pl > Forum > PHP
fiflus
Mam problem ze skryptem, który porcjuje dane. Mam utworzoną bazę w pliku której struktura wygląda tak:

baza.php
Kod
opis||link||n

opis||link||n

opis||link||n

opis||link||n

opis||link||n

opis||link||n

opis||link||n

opis||link||n


Plik który wyświetla dane z pliku baza.php wygląda tak:

index.php

[php:1:5cb2eed5e2]<?php
//ile pozycji na stronie ma zostać wyświetlonych
$max_poz="5";

//jeśli wchodzimy bez parametru pierwsza strona
//ustawia się jako pierwsza i pętla startuje od cyfry 0
if($page==""){
$page="1";
$start="0";
}
else{
//jeśli nie określamy start pętli w/g strony
$start=$page*$max_poz;
$start=$start-$max_poz;
}

$file = file("baza.php");
for ($index=$start; $index < $page*$max_poz; $index++)
{
$gr = split("|", chop($file[$index]));
$zz = explode("||", $file[$index]);

//wyświetlamy dane
echo"<table width="360"><tr><td height="25">$zz[0]</td><td width="40"><a href="$zz[1].php">Pobierz</a></td></table>";
}
?>[/php:1:5cb2eed5e2]

Do tego pliku index.php includuje jeszcze plik który tworzy linki do podstron:

linki.php

[php:1:5cb2eed5e2]<?php
//zliczamy ilość lini
$el=count($file);
//obliczamy ilość stron dzieląc ilość lini przez maksymalną
//liczbę danych wyświetlanych na stronie (zwróć uwagę na zaokrąglanie wyniku)
$stron=ceil($el/$max_poz);
//wykonujemy pętle
for ($index=1; $index <= $stron; $index++) {
//jeśli wygenerowana wartość $index jest równa wyświetlanej stronie
//generujemy pusty link
if($page==$index){
echo" <font color="white"><b>$index</b></font> |";
}
else{
//jesli nie tworzymy link do strony
echo" <b><a href="index.php?page=$index">$index</a></b> |";
}}
?>[/php:1:5cb2eed5e2]

Problem mam taki, że jak wyświetla ostatnią stronę na której z bazy pobierane są np. tylko 3 pozycje to w następnych liniach dopisuje jeszcze słowo pobierz. Jak zrobić aby w momencie gdy już nie ma więcej wpisów w bazie nie dopisywał słowa pobierz do strony. Sami zobaczcie jak to wygląda:

http://www.dornet.pl/~fiflus/problem/index.php

Uprzejmie proszę o pomoc walczę juz z tym 2 dni i nie mogę sobie poradzić sad.gif . Za pomoc z góry dziękuję smile.gif .
id4
[php:1:3d0db20f7f]<?php
//wyświetlamy dane
if($zz[0]){
echo"<table width="360"><tr><td height="25">$zz[0]</td><td width="40"><a href="$zz[1].php">Pobierz</a></td></table>";
unset($zz[0]);
}
?>[/php:1:3d0db20f7f]
kszychu
[php:1:e227459bc6]<?php
//ile pozycji na stronie ma zostać wyświetlonych
$max_poz="5";

//jeśli wchodzimy bez parametru pierwsza strona
//ustawia się jako pierwsza i pętla startuje od cyfry 0
if($page==""){
$page="1";
$start="0";
}
else{
//jeśli nie określamy start pętli w/g strony
$start=$page*$max_poz;
$start=$start-$max_poz;
}

$file = file("baza.php");
echo"<table width="360">"; // tabele wystarczy narysowac raz, po co robic to w petli?
for ($index=$start, $max = min($page*$max_poz, count($file)); $index < $max; $index++) //petle wykonujemy do maxa na stronie lub do skonczenia linkow
{
$gr = split("|", chop($file[$index]));
$zz = explode("||", $file[$index]);

//wyświetlamy dane
echo "<tr><td height="25">$zz[0]</td><td width="40"><a
href="$zz[1].php">Pobierz</a></td></tr>";
}
echo "</table>";
?>[/php:1:e227459bc6]
fiflus
Wow jak szybko odpisaliście, ale przy 1 jak i 2 koncepcji wyświerla, że jest błąd w lini 19

Kod
Parse error: parse error in /home/fiflus/public_html/problem/index.php on line 19
kszychu
NIe wierzę! Przecież w moim rozwiązaniu linia 19 jest czymś innym niż w rozwiązaniu id4.
----------------------------
Zmieniłem swoją wersję. Faktycznie brakowało ) w min.
fiflus
Super kszychu =D> pomogłeś mi dziękuję bardzo za pomoc!
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.