mazur_mzr
7.01.2010, 00:41:28
Witam serdecznie!
Jest to mój pierwszy temat na tym forum. Przejrzałem to forum i inne i nie mogłem poradzić sobie ze swoim problemem.
Otóż mam prosty skrypt galerii i teraz chodzi mi jak zdefiniować zmienną "page" ze zmienna która już mam by po określonej ilości tworzyło następną stronę.
A skrypt wygląda tak:
<?php
for ($i = 0; $i < $ile; $i++)
{
$nr = $i + 1;
echo '<span><a href=java script:displayWindow("samochody/'.$nr.'.jpg")><img src="samochody/'.$nr.'m.jpg" alt="fotka"></a></span>';
}
?>
<?php
for ($i = 0; $i < $ile; $i++)
{
$nr = $i + 1;
echo '<a href=java script:displayWindow2("samochody_p/'.$nr.'p.jpg")><img src="samochody_p/'.$nr.'pm.jpg" alt="fotka"></a>';
}
?>
Z góry za każdą podpowiedź bardzo dziękuję!
z tego co mozna wywnioskowac to chodzi Ci o stronnicowanie wynikow czyli:
- ustawiasz sobie jakas zmienna, ktora bedzie Ci przechowywac ilosc zdjec na jednej stronie np. $iloscObrNaStr = 4;,
- w adresie przeglądarki ustaw sobie zmienna np. strona=1, bo musimy wiedziec, ktora strona jest obecnie wyswietlana,
- i teraz w zaleznosci od liczby strony np. 1 to beda pobierane zdjecia od 1 do 4 i wyswietlane, a jesli strona bedzie miec wartosc 2 to wyswietlisz sobie 4 kojelne zdjecia zaczynajac juz od 4 zdjecia czyli od 4 do 8 itd.
- ale przed kazdym wyswietleniem linku i zdjecia sprawdz czy element tablicy ze zdjeciami nie jest pusty, bo co sie stanie jesli zdjec bedzie np. 13, wyjda 4 strony po 4 zdjecia czyli 16 elementow tablicy, wiec te zbedne 3 na koncu trzeba usunac,
- trzeba jeszcze na koncu wyswietlic liste linkow do tych kolejnych stron ze zdjeciami ilosc linkow obliczysz: $iloscWszystkichObr / $iloscObrNaStr i wynik musisz zaokrląglić funkcją ceil() w górę, poniewaz nie moze Ci wyjsc 3,75 linkow jesli zdjec byloby 15 a wynikow na jednej stronie 4 (15 / 4 = 3.75)
Algorytm juz masz, wiec teraz tylko zaimplementowac.
U mnie cos nie dziala funkcja glob nie wiem dlaczego, inaczej poczęstowałbym Cie gotowym kodem.
mazur_mzr
13.01.2010, 15:45:32
Bardzo ładnie to opisałeś. Tylko, że jest taka sprawa, że tu mam dwa oddzielne skrypty dla zdjęć poziomych i zdjęć pionowych, ponieważ w "js" skrypt który mam by dopasowywał rozmiar okna do zdjęcia nie chciał mi działać z php'em więc musiałem to w taki sposób rozwiązać. I teraz tak załóżmy ze mam po 20 zdjęć w obu folderach czyli zdjęć pionowych i poziomych i chcę by na stronie się wyświetlało po 5 zdjęć i gdy zastosuje ten algorytm, który mi przedstawiłeś to będzie mi wyświetlał po 5 zdjęć z każdego folderu. Chyba żebym się mylił.
A więc czy znajdzie się ktoś kto by mógł mi pomóc?
<?php
$zlicz = "./samochody";
$ile = count('samochody/*m.jpg'); $iloscZd=25;
$iId = $_GET['iid'];
$pId = $_GET['pid'];
}
else{
$iId = 0;
$pId = 0;
}
$dir = scandir($zlicz);
$pages = ceil($count / $iloscZd);
$iId = 0;
$pId = 0;
}
if($iId < 0 || $iId > $count || $pId < 0 || $pId > $pages){
$iId = 0;
$pId = 0;
}
for ($i = 0; $i < $iloscZd; $i++)
{
$nr = $i + 1;
echo '<span><a href=java script:popImage("samochody/'.$nr.'.jpg")><img src="samochody/'.$nr.'m.jpg" alt="Portfolio"></a></span>';
}
$currThCount = $i;
?>
<tr>
<td colspan="
<?php echo "$currThCount" ?>" align="center">
idź do strony:
<?php
for($i = 1; $i < $pages; $i++){
$link = "<a href=\"./grafika_na_pojazdach.php?pid=$i&iid=$iId\">$i</a> ";
}
?>
</td>
</tr>
Zrobiłem jak kolega mi radził. I nadal mam problem ponieważ wyświetla mi określoną liczę zdjęć na stronie i daje linki do następnych stron lecz na każdej następnej stronie są te same zdjęcia. Co źle zrobiłem.