Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> źle działający skrypt wyświetlający zdjęcia
maxer
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 23.03.2004
Skąd: Poznań

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


Witam, zrobiłem na swojej stronie mini galerię. Po lewej stronie wyświetlają się miniaturki, a po prawej duże zdjęcie. Chciałbym aby duze zdjecie ktore jest aktualnie wyswietlane zmienialo obrazek miniaturki (np. na czerwony kwadrat).

napisalem taki kod, ale on nie dziala jak nalezy, znaczy sie miniaturka aktualnie wyswietlana nie zmienia swoich "barw":
  1. <td valign="top"><div style="margin-top: 90px;">
  2.  <p style="text-align: center">
  3.  <?
  4.  $dir = opendir("gfx/kolekcja/czarne");
  5. if($dir) {
  6. while($img = readdir($dir)) {
  7.  
  8. @list($width, $height, $type, $attr) = getimagesize("gfx/kolekcja/czarne/$img");
  9.  
  10. if($img=='' or $img=='.' or $img=='..')
  11. {
  12. }
  13. else if($img=='$fotka')
  14. {
  15. print"<a href=\"kolekcja.php?fotka=$img\"><img style=\"margin-top: 3px; margin-left: 2px; border-color: White;\" border=\"1\" src=\"gfx/kolekcja/kolorowe/$img\" width=\"26\" height=\"40\"></a>";
  16. }
  17. else
  18. {
  19. print"<a href=\"kolekcja.php?fotka=$img\"><img style=\"margin-top: 3px; margin-left: 2px; border-color: White;\" border=\"1\" src=\"gfx/kolekcja/czarne/$img\" width=\"26\" height=\"40\"></a>";
  20.  
  21. }
  22. }
  23. closedir($dir);
  24. }
  25.  ?>
  26.  </p>
  27.  
  28. </div></td>
  29. <td valign="top">
  30. <p style="text-align: right">
  31. <?
  32. print"<img border='0' src='gfx/kolekcja/duze/$fotka'>";
  33. ?></p></td>

Pozdrawiam

edit: wywaliłem problem ;-)

Ten post edytował maxer 27.02.2006, 14:19:33
Go to the top of the page
+Quote Post
Jojo
post
Post #2





Grupa: Zarejestrowani
Postów: 405
Pomógł: 1
Dołączył: 19.09.2003
Skąd: Lublin

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


Rozumiem że w zmiennej $fotka masz aktualnie wyświetlane zdjęcie. Jeśli tak to błąd masz prawdopodobnie w linii 13 powinno być:
  1. <?php
  2.  
  3. else if($img==$fotka)
  4.  
  5. ?>
Go to the top of the page
+Quote Post
maxer
post
Post #3





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 23.03.2004
Skąd: Poznań

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


Niestety wywala błąd :/
Cytat
Parse error: parse error, unexpected T_ELSE in /home/espee/ftp/od_maxa/kolekcja.php
w lini w której zrobiłem
  1. <?php
  2. else if($img==$fotka)
  3. ?>

:/
Go to the top of the page
+Quote Post
Jojo
post
Post #4





Grupa: Zarejestrowani
Postów: 405
Pomógł: 1
Dołączył: 19.09.2003
Skąd: Lublin

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


A pewien jesteś że dobrze to wkleiłeś? Bez znaczników <?php i ?> i nie skasowałeś przy wklejaniu żadnej klamry? (spójrz linijkę wyżej czy wszystko się zgadza).
Go to the top of the page
+Quote Post
nospor
post
Post #5





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




@jojo nie wprowadzaj ludzi w błąd. w instrukcji if..else moze byc tylko jeden else.
tak wiec kod:
  1. <?php
  2.  
  3. if ...
  4. else if...
  5. else ...
  6.  
  7. ?>
jest bledny.
Poprawny to:
  1. <?php
  2.  
  3. if ...
  4. elseif...
  5. else ...
  6.  
  7. ?>


@maxer wywal ten problem z tytulu. tu kazdy ma problem
Go to the top of the page
+Quote Post
Jojo
post
Post #6





Grupa: Zarejestrowani
Postów: 405
Pomógł: 1
Dołączył: 19.09.2003
Skąd: Lublin

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


nospor: mylisz się...
http://pl.php.net/manual/pl/control-structures.elseif.php
"else if" działa w php dokładnie tak samo jak w C. Czyli jak napiszesz:
  1. <?php
  2.  
  3. if( warunek )
  4. {
  5. //kod
  6. }
  7. else if( warunek )
  8. {
  9. //kod
  10. }
  11. else
  12. {
  13. //kod
  14. }
  15.  
  16. ?>

jest równoważne z tym jakbyś napisał:
  1. <?php
  2.  
  3. if( warunek )
  4. {
  5. //kod
  6. }
  7. else
  8. {
  9. if( warunek )
  10. {
  11. //kod
  12. }
  13. else
  14. {
  15. //kod
  16. }
  17. }
  18.  
  19. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #7





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




@Jojo najmocniej Cię przepraszam. Zmylil mnie ten komunikat błędu, coś mi się jeszcze ubzduralo i tak mi się napisalo. A do linku co podales to ja wcześniej i tak zaglądalem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Co nie zmienia faktu że lepiej jest pisać elseif niz else if (a przynajmniej tak mi kiedys wpojona na torturach i teraz się tego trzymam). Nawet w linku co podales masz elseif (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

edit: "Moderator nie popelnia błędów - on sprawdza czujność użytkowników"
Go to the top of the page
+Quote Post
maxer
post
Post #8





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 23.03.2004
Skąd: Poznań

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


Taki kod mam teraz:
  1. <?
  2. $dir = opendir("gfx/kolekcja/czarne");
  3. if($dir) {
  4. while($img = readdir($dir)) {
  5.  
  6. @list($width, $height, $type, $attr) = getimagesize("gfx/kolekcja/czarne/$img");
  7.  
  8. if($img=='' or $img=='.' or $img=='..')
  9. {
  10. }
  11. else
  12. {
  13. print"<a href=\"kolekcja.php?fotka=$img\"><img style=\"margin-top: 3px; margin-left: 2px; border-color: White;\" border=\"1\" src=\"gfx/kolekcja/czarne/$img\" width=\"26\" height=\"40\"></a>";
  14. }
  15. else if($img==$fotka)
  16. {
  17. print"<a href=\"kolekcja.php?fotka=$img\"><img style=\"margin-top: 3px; margin-left: 2px; border-color: White;\" border=\"1\" src=\"gfx/kolekcja/kolorowe/$img\" width=\"26\" height=\"40\"></a>";
  18. }
  19.  
  20. }
  21.  
  22. closedir($dir);
  23. }
  24.  ?>


i to wywala ten błąd :/
Go to the top of the page
+Quote Post
kszychu
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


linie 9 i 10: co to ma być?
Go to the top of the page
+Quote Post
Jojo
post
Post #10





Grupa: Zarejestrowani
Postów: 405
Pomógł: 1
Dołączył: 19.09.2003
Skąd: Lublin

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


nospor: Ja też piszę "łącznie" ale ten fragment kodu był po prostu skopiowany z listingu nad moim postem.

kszychu: Sądzę że to jest if w którym nic się nie wykonuje (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

maxer: Masz teraz złą kolejność najpierw powinien być if potem elseif a na koniec dopiero else.
Go to the top of the page
+Quote Post
kszychu
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


@Jojo, w takim razie wytłumacz mi, do którego ifa odnosi się linia 15.
Go to the top of the page
+Quote Post
maxer
post
Post #12





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 23.03.2004
Skąd: Poznań

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


@Jojo serdecznie dziękuję (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Działa jak należy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
@kszychu linie 9 i 10 są po to aby skrypt nie wyświetlał katalogu jako zdjęcia ;-)

Pozdrawiam
Go to the top of the page
+Quote Post
kszychu
post
Post #13





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


@maxer, w tym celu, przed while daj sobie:
  1. <?php
  2. readdir($dir);
  3. readdir($dir);
  4.  
  5. ?>


oszczędzi Ci to sprawdzania za każdym przebiegiem warunku, który występuje tylko dwa razy na początku.
Go to the top of the page
+Quote Post
Kuziu
post
Post #14





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


To zamiast linii 9 i 10 możesz napsiać tak

  1. <?php
  2. if($img!='' && $img!='.' && $img!='..')
  3. ?>


I nie bedziesz miał takich dziwactw w kodzie choć owczywiście Twój kod zadziała tak samo.

Ten post edytował Kuziu 27.02.2006, 14:39:58
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: 22.08.2025 - 11:43