Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kolejność w bazie
Mody23
post
Post #1





Grupa: Zarejestrowani
Postów: 276
Pomógł: 0
Dołączył: 30.06.2010

Ostrzeżenie: (10%)
X----


Witam!

Mam tabelę w bazie. Chodzi o to, że tabela ma wiele pól, ale ja mam pytanie co do jednego - order.
Załóżmy że mam w bazie rekordy o nazwie i order'ze kolejno:

TEST - 1
TESTER - 2
TESTT - 3
TESTERR - 4

I teraz chciałbym tym swobodnie sterować góra/dół, tzn.:

TEST - 1 - GÓRA/DÓŁ
TESTER - 2 - GÓRA/DÓŁ
TESTT - 3 - GÓRA/DÓŁ
TESTERR - 4 - GÓRA/DÓŁ

No i jak mógłbym tym sterować? Załóżmy, że chcę pole TESTT przesunąć w górę o jedną pozycję. Jak mam zrobić aby pole TESTT "zamieniło się" order'em z polem, które jest nad tym polem, czyli TESTER ?

Pozdr
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kostek.88
post
Post #2





Grupa: Zarejestrowani
Postów: 376
Pomógł: 47
Dołączył: 23.08.2007
Skąd: Warszawa

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


  1. SELECT id,order FROM tabela WHERE id = to_co_przesuwasz // nastepnie przypisujesz do zmiennej np. $pos
  2.  
  3. UPDATE tabela SET order=order+1 WHERE order=($pos-1)
  4. UPDATE tabela SET order=order-1 WHERE id = to_co_przesuwasz


Nie jestem pewien, czy dobrze, ale logika jest taka:

1. wybierasz pozycje elementu, ktory przesuwasz, w tym wypadku 3
2. ustawiasz pozycje +1 dla elementu znajdujacego sie o pozycje wyzej NIZ TEN KTORY PRZESUWASZ i masz dwie trojki
3. pozostaje odjac pozycje (3-1=2) od aktualnie przesuwanego elementu w gore.

W dol kombinujesz na odwrot, rusz glowa (IMG:style_emoticons/default/wink.gif)

PS. Jesli masz pytania jak spreparowac link do pozycji w gore, to cos takiego

  1. <a href="plik.php?up=id_elementu">up</a>


Aha, a jak sprawdzic?

wrzuc na poczatek warunek if($_GET['up']) Jesli jest spelniony, to dajesz te zapytania. Ale... jeszcze wypadaloby zrobic

  1. header('Location: ' . str_replace('?up=' . $_GET['up'], '', $_SERVER['REQUEST_URI']) );


albo po prostu

  1. header('Location: plik.php');


Wowczas jak przesuniesz element w gore, to nie zostana Ci smieci w linku. Bo jak zostana i odswiezysz strone to sie dalej bedzie przesuwal ten element - wiadomo.

Ten post edytował Kaloryfer 3.11.2011, 00:43:08
Go to the top of the page
+Quote Post

Posty w temacie


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: 6.10.2025 - 22:28