Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]problem z pętlą
Forum PHP.pl > Forum > Przedszkole
baripoland
Witam forumowiczów.
Od jakiegoś czasu uczę się php, ale ciągle jestem na poziomie podstaw. Mam pewien problem z pętlą. Chciałem zrobić prostą galerię na stronę php :

  1. <?php
  2. $galeria = $_GET['galeria'];
  3. $i=1;
  4. $folder = "../zdjecia/";
  5.  
  6. if(isset($galeria))
  7. {
  8. if($galeria == 'wakacje')
  9. {
  10. $l=count(glob($folder."/wakacje/*.jpg"));
  11. while($i<=$l){
  12.  
  13. echo '<div id="tekst"><a href="'.$folder.'wakacje/'.$i.'.jpg"><img src="'.$folder.'wakacje/'.$i.'.jpg" height="112px", width="150px" /></a></div></br>';
  14. $i++;
  15. }
  16. }
  17. else echo ' musisz wybrać jakąś galerię';
  18. }
  19. else echo 'Wystąpił problem';
  20. ?>


Wszystko działa jak należy. Chciałem jednak, aby miniaturki (te w rozmiarze 112/150px) wyskakiwały po 4 w rzędzie. Pomyślałem o tabeli, tylko nie wiem jak to zrobić od strony kodu. Miałem jeden pomysł, który okazał się niewypałem. Ma ktoś jakiś pomysł?

PS. Może istnieje jakaś funkcja do automatycznego tworzenia miniaturek? Ten sposób działa, ale jest dość kiepski, ponieważ te miniaturki to nadal zdjęcia, a każde z nich waży ponad 1MB i efekt jest taki, że strona ładuje się bardzo długo.

Pozdrawiam i z góry dzięki za pomoc.
Daiquiri
Dodaj warunek, coś na kształt:
  1. if($i%4 == 0) {
  2. //nowa linia
  3. }

PS. "Pentla"?
baripoland
Cytat(Daiquiri @ 28.06.2011, 10:51:29 ) *
Dodaj warunek, coś na kształt:
  1. if($i%4 == 0) {
  2. //nowa linia
  3. }


Dość dziwnie to wyszło, bo jeśli mam nieparzystą liczbę zdjęć, to w pierwszej linii wyświetla mniejszą ilość, np. mam 7 zdjęć to wyświetla mi 3 zdjęcia w pierwszej linii i 4 w drugiej, ale ogólnie wygląda to zdecydowanie lepiej niż kiedy są po 1 w linii. W każdym bądź razie wielkie dzięki za pomoc.

Cytat
PS. "Pentla"?


Literówka, chyba przez szybkie pisanie. Już poprawione.
Daiquiri
Zawsze możesz zmodyfikować warunek lub przestawić go na koniec while, wedle potrzeb smile.gif.
baripoland
Ale ja go właśnie dałem na koniec while.

  1. if(isset($galeria))
  2. {
  3. $l=count(glob($folder.$galeria"/*.jpg"));
  4. if($l != 0){
  5. while($i<=$l){
  6. echo '<a href="'.$folder.$galeria'/'.$i.'.jpg"><img src="'.$folder.$galeria'/'.$i.'.jpg" height="112px", width="150px" /></a> ';
  7. $i++;
  8. if($i%4 == 0) echo '</br>';
  9.  
  10. }
  11. }
  12. else echo 'Nie ma zdjęć w tej galerii.';
  13.  
  14. }
  15. else echo 'Wystąpił problem';


A zmodyfikować to raczej nie zmodyfikuję, ponieważ nie bardzo wiem o co chodzi z tym znakiem %. Muszę doczytać na ten temat, ale najpierw chcę skończyć ten skrypt.
korex
chodzi o dzielenie modulo
peter13135
procent to reszta z dzielenia
4%6 zwróci 2
kefirek
  1. if(isset($galeria))
  2. {
  3. $l=count(glob($folder.$galeria"/*.jpg"));
  4. if($l != 0){
  5. $i = 0;
  6. while($i<=$l){
  7. echo '<a href="'.$folder.$galeria'/'.$i.'.jpg"><img src="'.$folder.$galeria'/'.$i.'.jpg" height="112px", width="150px" /></a> ';
  8.  
  9. if ($i != 0 && ($i % 4 == 0)) { echo "</br>"; }
  10. $i++;
  11.  
  12. }
  13. }
  14. else echo 'Nie ma zdjęć w tej galerii.';
  15.  
  16. }
  17. else echo 'Wyst?pił problem';
  18.  
baripoland
Wielkie dzięki. Teraz wszystko jest jak należy. Co do miniaturek to znalazłem program który tworzy je automatycznie, więc zmodyfikowałem nieco kod i dodałem folder "miniaturki". Program nazywa się "Image Resizer 4", gdyby ktoś potrzebował coś podobnego.

Jeszcze raz dziękuję 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.