Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Następny lub pierwszy - poprzedni lub ostatni rekord
Forum PHP.pl > Forum > Bazy danych > MySQL
Vience
Witam serdecznie,
Sprawa może błaha, ale mam pewien problem, nie będę się kryć z tym, że moja wiedza z zakresu zapytań SQL jest bardzo podstawowa.

Otóż: w mam tabelę MySQL, w której gromadzę dane o zdjęciach, a wśród nich najistotniejsza informacja - ID poszczególnego zdjęcia oraz pole na numerek ID albumu, w którym zdjęcie się znajduje. Chcę zrobić sobie przeglądarkę zdjęć, która będzie działać również przez AJAXa. Wymyśliłem sobie to tak, że będę wysyłał do skryptu ID bieżąco oglądanego zdjęcia, ID albumu oraz informację czy chcę jechać do tyłu czy do przodu, ten połączy się z bazą i zwróci potrzebne mi dane, a ja już w głównym skrypcie ładnie nimi sobie pokieruję. Niby wszystko proste, ale chciałbym aby skrypt ajaxa zwracał ID najmniejszego zdjęcia związanego z albumem gdy dojdzie do najwyższego i odwrotnie - największe ID kiedy będzie przy najmniejszym. Mógłbym się tym pobawić przez PHP, ale przez MySQL będzie optymalniej jak sądzę.

Z góry serdecznie dziękuję za podpowiedzi.
darko
Trzymaj, napisałem Ci funkcję do tego:
  1. /*
  2. -- DROP FUNCTION IF EXISTS getFotoId;
  3. delimiter //
  4. CREATE FUNCTION getFotoId (ID INT) RETURNS INT
  5. BEGIN
  6.   DECLARE tmax, tmin, tnext INT;
  7.   select max(num), min(num) into tmax, tmin from test;
  8.   select num into tnext from test where num > ID limit 1;
  9. return IF(ID >= tmax, tmin, tnext);
  10. END//
  11. */
  12. -- Użycie
  13. SELECT getFotoId(9) AS fotoid
  14. -- Założenia:
  15. -- test - nazwa tabeli na której wykonujemy zapytanie
  16. -- num - klucz główny Twojej tabeli (id)
Vience
Dziękuję serdecznie, poprzerabiałem nieco kod (dodałem parametr ID albumu) i śmiga pięknie! Co prawda, tylko do przodu, ale główną koncepcję jakby już mam, także pogrzebie w funkcji i to rozpracuję. Dziękuję raz jeszcze!

OK, jednak jest problem. Nigdy nie pisałem swoich funkcji w MySQL, także proszę o wyrozumiałość...

Wklepywałem funkcje przzez phpMyAdmin - wszystko pięknie śmigało w testach przez takowego. Jednak kiedy korzystałem z funkcji przez php wyskoczyło function doesn't exist. Co miałbym w takim przypadku zrobić?
darko
Najpierw poślij query, które ją utworzy z warunkiem DROP FUNCTION IF EXISTS, być może bez delimiterów.
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.