Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Generowanie galerii, problem z szukaniem zdjec.
bercow
post 15.11.2011, 15:11:29
Post #1





Grupa: Zarejestrowani
Postów: 156
Pomógł: 11
Dołączył: 25.12.2005

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


Witam.

Mam problem z generowaniem galerii, nie wiem czemu ale petla wykonuje sie tylko raz, albo wykonuje sie bez konca. Moze ktos widzi blad ?

  1. <?php
  2. $i = 1;
  3. do {
  4. $plik = "/foto/max/".$i.".jpg";
  5. $test = file_exists($plik);
  6. if (!$test)
  7. {
  8. echo $i;
  9. echo '<img src="/foto/max/'.$i.'.jpg" width="10%" height="20%" alt="" />';
  10. $i = $i+1;
  11. echo $i;
  12. }
  13. else
  14. {
  15. $i = 0;
  16. }
  17. }
  18. while ($i == 0)
  19. ?>
Go to the top of the page
+Quote Post
nospor
post 15.11.2011, 15:12:40
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




while ($i == 0)
Co wg. ciebie robi ten warunek pętli?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Monter08
post 15.11.2011, 15:15:32
Post #3





Grupa: Zarejestrowani
Postów: 237
Pomógł: 22
Dołączył: 16.09.2010
Skąd: Lubaczów

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


Nie rozumiem tego
  1. $test = file_exists($plik);
  2. if (!$test)

Jeżeli pliku nie będzie to ma go wyświetlić?
Go to the top of the page
+Quote Post
bercow
post 15.11.2011, 15:24:32
Post #4





Grupa: Zarejestrowani
Postów: 156
Pomógł: 11
Dołączył: 25.12.2005

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


Cytat(nospor @ 15.11.2011, 15:12:40 ) *
while ($i == 0)
Co wg. ciebie robi ten warunek pętli?

Faktycznie do while wykonuje sie dopoki spelniony jest warunek,
Cytat(Monter08 @ 15.11.2011, 15:15:32 ) *
Nie rozumiem tego
  1. $test = file_exists($plik);
  2. if (!$test)

Jeżeli pliku nie będzie to ma go wyświetlić?

Wiem, ale jak dam if($test) to dzieje sie cale nic.

Jezeli zmienie na while ($i <>0) petla wykona sie bez konca.

Powino byc, ($test) i $i <>0 Ma wyswietlac popoki zdjecia istenieja, a zakonczyc jak $i = 0, a wiec wykonywac, az do $i roznego od zera. Ale w takim idealnym ukladzie nie dzieje sie nic :/
Go to the top of the page
+Quote Post
nospor
post 15.11.2011, 15:28:31
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Taka prosta pętla z prostym warunkiem. Po co ci w ogole w warunku te $i?

  1. $i = 1;
  2. do {
  3. $plik = "/foto/max/".$i.".jpg";
  4. $test = file_exists($plik);
  5. if ($test)
  6. {
  7. echo $i;
  8. echo '<img src="/foto/max/'.$i.'.jpg" width="10%" height="20%" alt="" />';
  9. $i = $i+1;
  10. echo $i;
  11. }
  12. }
  13. while ($test)

I juz

ps:
$plik = "/foto/max/".$i.".jpg";
sprawdzanie ściezki do pliku na serwerze powinno się raczej odbywać względem ścieżki twojej aplikacji a nie względem katalogu głównego. Nic dziwnego ze ci plików nie znajduje

Co innego znaczy /foto/max/".$i.".jpg w URL a co innego /foto/max/".$i.".jpg znaczy w ściezce na serwerze


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Monter08
post 15.11.2011, 15:29:46
Post #6





Grupa: Zarejestrowani
Postów: 237
Pomógł: 22
Dołączył: 16.09.2010
Skąd: Lubaczów

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


Tylko pamiętaj, że jak w katalogu obrazki 1.jpg, 2.jpg, 4.jpg to pętla zakończy działanie po 2. Moim zdaniem rozwiązanie nie jest zbyt dobre.
Go to the top of the page
+Quote Post
bercow
post 15.11.2011, 15:33:08
Post #7





Grupa: Zarejestrowani
Postów: 156
Pomógł: 11
Dołączył: 25.12.2005

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


Faktycznie, wywalenie "/" sprzed /foto/... pomoglo, i dziala idealnie

Co do 1.jpg, 2.jpg itd. Jest mi to potrzebne do ustalenia kolejnosci wyswietlania, i "dosyc latwej" mozliwosci zmiany tej kolejnosci.

Ten post edytował bercow 15.11.2011, 15:34:38
Go to the top of the page
+Quote Post
qasz
post 15.11.2011, 16:32:23
Post #8





Grupa: Zarejestrowani
Postów: 43
Pomógł: 2
Dołączył: 18.05.2010
Skąd: Norwich

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


A nie prosciej ?

  1.  
  2. $imgs = glob("foto/max/*.jpg");
  3.  
  4. foreach($imgs as $val)
  5. {
  6. echo '<img src="foto/max/'.$val.'" width="10%" height="20%" />';
  7. }


Ten post edytował qasz 15.11.2011, 17:03:07
Go to the top of the page
+Quote Post
bercow
post 15.11.2011, 16:59:20
Post #9





Grupa: Zarejestrowani
Postów: 156
Pomógł: 11
Dołączył: 25.12.2005

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


@qasz

A jak je potem segregowac, ktory pierwszy,a ktory 7 mial by sie wysietlic ?
Go to the top of the page
+Quote Post
qasz
post 15.11.2011, 17:02:46
Post #10





Grupa: Zarejestrowani
Postów: 43
Pomógł: 2
Dołączył: 18.05.2010
Skąd: Norwich

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


No w tym przypadku imgs jest tablica, wiec mozesz z nia robic co tylko chcesz w latwy sposob.
Go to the top of the page
+Quote Post
gorden
post 15.11.2011, 17:05:18
Post #11





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


natsort
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 00:20