Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Galeria zdjęc - zdjęcie 1 z 15
Forum PHP.pl > Forum > Przedszkole
bobo1
Mam galerie zdjęć. Informacje na temat zdjęć są przechowywane w tabeli PHOTOS o strukturze

idPhoto
idAlbum
Photo

Zdjęcia są sortowane przy pomocy idPhoto

Chciałem dodać taki mały bajer, jak użytkownik przegląda zdjęcia to widzi napis "zdjęcie 4 z 15" plus napis kolejne / poprzednie zdjęcie. Jak można rozwiązań ten problem w elegancki sposób?
Spawnm
Napisz pager (paginację).
W sieci masz spoko kursów jak to zrobić.
cezarszl
Jeżeli chcesz wykorzystać w tym celu tylko i wyłącznie PHP i MySql to pewnie Ci nie pomogę. Ale popularnym i na pewno eleganckim rozwiązaniem jest ten plugin do jQuery.
bobo1
Problem jest tego typu, że nie chcę dodawać kolejnej zmiennej określającej stronę. Chcę przekazywać tylko dwa parametry idAlbum oraz idPhoto.

Nawet jeżeli zastosuje dodatkowy parametr strona to i tak to nie do końca rozwiązuje problem. Ponieważ określenie idPhoto dla strona 4 już nie jest takie banalne. W sensie trzeba tworzyć dodatkowe zapytania za każdym razem.

Byłbym wdzięczny za jakiś link do artykułu w którym jest opisany ten problem.
nekomata
Ja bym to załatwił tak :
- link bym zrobił .htaccessem żeby wychodziło /album/id które będzie przekazywane do GET
- Pobierasz z bazy :
- zdjęcie o podanym id
- Używając COUNT(idPhoto) WHERE idPhoto < GET_ID_ZDJECIA AND idAlbum = GET_ID_ALBUMU (dodajesz tylko +1 i masz np. Zdjęcie 4..) ... zapisujesz powiedzmy jako $numer_zdjęcia
- Używając COUNT(idPhoto) WHERE idAlbum = GET_ID_ALBUMU (I masz już dwie zmienne potrzebne do "Zdjęcie 4 z 15" ) zapisujesz powiedzmy jako $ilość_zdjęć
- Jeśli $numer_zdjęcia < $ilość_zdjęć wyświetlasz link do następnego zdjęcia.. czyli odebrany GET +1.
- Jeśli $numer_zdjęcia == 0 wyświetlasz link do poprzedniego....
Chyba dosyć rozpisałem całą sprawę... oczywiście możesz użyć jednego zapytania aby pobrać wszystkie potrzebne dane , ale nie chce mi się kombinować żeby ci to napisać teraz.
bobo1
Cytat(nekomata @ 2.05.2011, 12:30:10 ) *
Ja bym to załatwił tak :
- link bym zrobił .htaccessem żeby wychodziło /album/id które będzie przekazywane do GET
- Pobierasz z bazy :
- zdjęcie o podanym id
- Używając COUNT(idPhoto) WHERE idPhoto < GET_ID_ZDJECIA AND idAlbum = GET_ID_ALBUMU (dodajesz tylko +1 i masz np. Zdjęcie 4..) ... zapisujesz powiedzmy jako $numer_zdjęcia
- Używając COUNT(idPhoto) WHERE idAlbum = GET_ID_ALBUMU (I masz już dwie zmienne potrzebne do "Zdjęcie 4 z 15" ) zapisujesz powiedzmy jako $ilość_zdjęć
- Jeśli $numer_zdjęcia < $ilość_zdjęć wyświetlasz link do następnego zdjęcia.. czyli odebrany GET +1.
- Jeśli $numer_zdjęcia == 0 wyświetlasz link do poprzedniego....
Chyba dosyć rozpisałem całą sprawę... oczywiście możesz użyć jednego zapytania aby pobrać wszystkie potrzebne dane , ale nie chce mi się kombinować żeby ci to napisać teraz.



Dzięki. Zmieniłem w warunku na <= ale to generalnie to samo co + 1 w tym przypadku smile.gif
SELECT COUNT( idPhoto )FROM photos WHERE idPhoto <= GET_ID_ZDJECIA AND idAlbum = GET_ID_ALBUMU

Co linku do kolejnego zdjęcia to GET_ID_ZDJECIA + 1 jest nie wystarczające, ponieważ kolejne ID + 1 może należeć do innego albumu, więc należy to rozwiązać inaczej. Zastanawiam się jak ...


nekomata
Oh sorry.. moja pomyłka z tym linkiem..
Ja bym zrobił coś takiego
  1. SELECT idPhoto FROM zdjecia WHERE idPhoto > GET_ZDJECIA AND idAlbum = GET_ALBUM LIMIT 1
Z palca ale powinno działać biggrin.gif
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.