Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Galeria, tworzenie nastepnej strony
Forum PHP.pl > Forum > Przedszkole
mazur_mzr
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:
  1. <?php
  2.  
  3. $ile = count(glob('samochody/*m.jpg'));
  4.  
  5. for ($i = 0; $i < $ile; $i++)
  6. {
  7. $nr = $i + 1;
  8. echo '<span><a href=java script:displayWindow("samochody/'.$nr.'.jpg")><img src="samochody/'.$nr.'m.jpg" alt="fotka"></a></span>';
  9.  
  10. }
  11.  
  12. ?>
  13.  
  14. <?php
  15.  
  16. $ile = count(glob('samochody_p/*pm.jpg'));
  17.  
  18. for ($i = 0; $i < $ile; $i++)
  19. {
  20. $nr = $i + 1;
  21. echo '<a href=java script:displayWindow2("samochody_p/'.$nr.'p.jpg")><img src="samochody_p/'.$nr.'pm.jpg" alt="fotka"></a>';
  22.  
  23. }
  24.  
  25. ?>


Z góry za każdą podpowiedź bardzo dziękuję!
cve
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
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?

  1. <?php
  2. $zlicz = "./samochody";
  3. $ile = count('samochody/*m.jpg');
  4. $iloscZd=25;
  5.  
  6. if(isSet($_GET['iid']) && isSet($_GET['pid'])){
  7. $iId = $_GET['iid'];
  8. $pId = $_GET['pid'];
  9. }
  10. else{
  11. $iId = 0;
  12. $pId = 0;
  13. }
  14.  
  15. $dir = scandir($zlicz);
  16. array_shift($dir);
  17. array_shift($dir);
  18.  
  19. $count = count($dir);
  20. $pages = ceil($count / $iloscZd);
  21.  
  22. if(!is_numeric($iId) || !is_numeric($pId)){
  23. $iId = 0;
  24. $pId = 0;
  25. }
  26.  
  27. if($iId < 0 || $iId > $count || $pId < 0 || $pId > $pages){
  28. $iId = 0;
  29. $pId = 0;
  30. }
  31.  
  32.  
  33.  
  34. for ($i = 0; $i < $iloscZd; $i++)
  35. {
  36. $nr = $i + 1;
  37.  
  38. echo '<span><a href=java script:popImage("samochody/'.$nr.'.jpg")><img src="samochody/'.$nr.'m.jpg" alt="Portfolio"></a></span>';
  39.  
  40. }
  41. $currThCount = $i;
  42. ?>
  43. <tr>
  44. <td colspan="<?php echo "$currThCount" ?>" align="center">
  45. idź do strony:
  46. <?php
  47. for($i = 1; $i < $pages; $i++){
  48. $link = "<a href=\"./grafika_na_pojazdach.php?pid=$i&amp;iid=$iId\">$i</a>&nbsp;";
  49. echo $link;
  50. }
  51. ?>
  52. </td>
  53. </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.
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.