Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]problem z pętlą, po 3 wyniki w linii
baripoland
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.06.2011

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


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.

Ten post edytował baripoland 28.06.2011, 09:53:02
Go to the top of the page
+Quote Post
Daiquiri
post
Post #2





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Dodaj warunek, coś na kształt:
  1. if($i%4 == 0) {
  2. //nowa linia
  3. }

PS. "Pentla"?
Go to the top of the page
+Quote Post
baripoland
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.06.2011

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


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.
Go to the top of the page
+Quote Post
Daiquiri
post
Post #4





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Zawsze możesz zmodyfikować warunek lub przestawić go na koniec while, wedle potrzeb (IMG:style_emoticons/default/smile.gif) .
Go to the top of the page
+Quote Post
baripoland
post
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.06.2011

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


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.
Go to the top of the page
+Quote Post
korex
post
Post #6





Grupa: Zarejestrowani
Postów: 36
Pomógł: 4
Dołączył: 2.02.2008

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


chodzi o dzielenie modulo
Go to the top of the page
+Quote Post
peter13135
post
Post #7





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


procent to reszta z dzielenia
4%6 zwróci 2
Go to the top of the page
+Quote Post
kefirek
post
Post #8





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


  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.  


Ten post edytował kefirek 28.06.2011, 10:32:57
Go to the top of the page
+Quote Post
baripoland
post
Post #9





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.06.2011

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


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.
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 - 13:14