Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Zmiana miejsca obrazka
Forum PHP.pl > Forum > PHP
kusiu
Witam!
Jak otoz mam w bazie obrazki i tabela ma jedna kolumne ID(auto_increment). Skrypt polega na dodaniu i usunieciu obrazków. wyswietla je w miniaturkach po przez select * from images. Teraz moj probem polega na tym, iz chce, aby przy kazdej miniaturce procz textu "usun zdjecie" byly 2 strzalki - w gore i w dol, ktore umozliwią zmiane miejsca tego obrazka(obrazki wyswietlane sa od gory do dolu).



POMOCY sad.gif !
kossa
1. Dodaj do tabeli kolumnę np "pozycja"
2. Dodając kolejne zdjęcie do bazy ustaw mu pozycję na: ostatnia największa + 1
3. Napisz funkcję która będzie modyfikowała pozycję wybranego obrazka (góra/dół) - podepnij do linków
(np. pobierasz poprzeni i aktalny zapis z bazy z kolumny pozycja i zamieniasz je, tak samo obecny i kolejny - i zamiana, pamietakj kolejny to nie pozycja obecna + 1 tylko kolejny sprawdzony z bazy bo jak coś pomiędzy usunaleś to klapa)

Mam nadzieję, że jasno opisałem "algorytm" postępowania jak zabrać się do zadania, teraz tylko już select i update :-)

Powodzenia,
Łukasz

edit przykładowe rozwiązanie

  1. <?php
  2. function ZmienPozycje($foto_id,$up=true)
  3. {
  4. //pobieramy pozycje
  5. $s="select pozycja from tabela where id=$foto_id limit 1";
  6. $res=mysql_query($s);
  7. $row=mysql_fetch_array($res);
  8. $poz=$row[0];
  9.  
  10. if ($up)
  11. $s="select id,pozycja from tabela where pozycja<$poz order by pozycja desc";
  12. else
  13. $s="select id,pozycja from tabela where pozycja>$poz order by pozycja";
  14.  
  15. $res=mysql_query($s);
  16. $ilosc=mysql_num_rows($res);
  17.  
  18. if ($ilosc>0)
  19. {
  20. $row=mysql_fetch_array($res);
  21. $newPoz=$row[1];
  22. $newId=$row[0];
  23. $s="update tabela set pozycja=$newPoz where id=$foto_id";
  24. $res=mysql_query($s);
  25. $s="update tabela set pozycja=$poz where id=$newId";
  26. $res=mysql_query($s);
  27.  
  28. }
  29. };
  30. ?>

uruchamiasz np. poprzez klik w link gdzie masz np. plik.php?foto_id=10&up=true //jesli w dol &up=false //jesli w gore

a funkcje wywolujesz w pliku plik.php:

  1. <?php
  2. ZmienPozycje($_GET["foto_id"],$_GET["up"]);
  3. ?>

i wszystko, mam nadzieje ze nie ma literowek i bledu typu brak srednika, pisalem tp teraz na szybko z reki

Łukasz
El.Kurczako
nie wiem w jaki sposob sobie ustalasz wyswietlanie obrazkow. na razie mozesz tylko wg ID. zatem zmieniaj ID obrazkow i wyswietlaj je wg ASC albo DESC. pobierasz jedno ID obrazka, drugiego obrazka (sasiedniego, nizej albo wyzej) i podmieniasz.
kusiu
offtopic.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.