![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 262 Pomógł: 5 Dołączył: 8.02.2005 Skąd: Olsztyn / Zatorze Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam malutki problem... otóż mam sobie takie dwie tabelki: Kod mysql> select *from tree; +--------------+------------+ | id | parent | +--------------+------------+ | 1 | 0 | | 2 | 1 | | 3 | 1 | | 4 | 1 | | 5 | 5 | | 6 | 2 | | 7 | 2 | +--------------+-----------+ 7 rows in set (0.00 sec) mysql> select *from category; +----+--------------+ | id | nazwa | +----+--------------+ | 1 | aaaaaaaaaa | | 2 | bbbbbbbbbbb | | 3 | ccccccccccc | | 4 | ddddddddd | | 5 | eeeeeeeee | | 6 | fffffffffffffff | | 7 | ggggggggg | +----+--------------+ 7 rows in set (0.00 sec) i nie wiem jak stworzyć zapytanie którego wynikiem będzie zamiana miejscami pozycji o danym id i o id mniejszym o jeden np. chciałbym zamienić w tabelce tree i categorry pozycje która ma id=3 z pozycją o jeden mniejszą razem ze zmianą nazw id czyli wynikiem będzie: Kod mysql> select *from tree; +--------------+------------+ | id | parent | +--------------+------------+ | 1 | 0 | | 2 | 1 | | 3 | 1 | | 4 | 1 | | 5 | 5 | | 6 | 2 | | 7 | 2 | +--------------+-----------+ 7 rows in set (0.00 sec) mysql> select *from category; +----+--------------+ | id | nazwa | +----+--------------+ | 1 | aaaaaaaaaa | | 2 | ccccccccccc | | 3 | bbbbbbbbbbb | | 4 | ddddddddd | | 5 | eeeeeeeee | | 6 | fffffffffffffff | | 7 | ggggggggg | +----+--------------+ 7 rows in set (0.00 sec) próbowałem coś takiego: $sql = "UPDATE category SET id=".($id-1)." WHERE id=".$id." AND SET id=".($id+1)." WHERE id=".($id-1); ale niestety to nie działa ... macie jakieś pomysły (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Ten post edytował MitS 18.10.2007, 18:35:21 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 165 Pomógł: 9 Dołączył: 9.04.2002 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Nie możesz tak zrobić, bo id jest unikatowe a w czasie zamiany pojawiły by się dwa takie same bo takie zapytanie nie wykona się równoczesinie a nawet nie wiem czy się wykona, nie analizowałem aż tak.
Układanie takie realizuje się dodatkową kolumną int i tam dodajesz podczas dodawania rekordów kolejne wartości i na nich później operujesz, zamieniesz je ze sobą. Łukasz |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 22:57 |