manerito
17.09.2007, 22:22:43
Ostatnio napotkałem następujący problem:
Mam tabele w bazie mysql gdzie przechowuje newsy, sa one wyświetlane na stronie poprzez numer ID, od największego do najmniejszego. Chce zrobić opcje usuń, lecz nie wiem jak powinien wyglądać skrypt, który by zmieniał wszystkie parametry powyżej liczby, np.:
1,2,3,4,5,6,7
usuwam 4: 1,2,3,5,6,7
Jak zrobić, aby 5=4 6=5 7=6 ?
kris2
17.09.2007, 23:35:49
to co probujesz zrobic jest idiotyczne.
najlepiej dodaj dodatkowe pole z sortowaniem lub generuj numeracje podczas zapytania. jezeli jednak musisz to
DELETE from table WHERE id=5;
UPDATE table set id=id-1 WHERE id>5;
pamiętaj że przy dużej liczbie rekordow taki update zajmie mnostwo czasu bo operujesz na danych ktore sa primary key
do tego więzy integralnosci i i i...
nie rób tego
Darti
17.09.2007, 23:37:40
Nie mam pewności ale chyba tak:
DELETE FROM news WHERE id=5;
a później
UPDATE news SET id=id-1 WHERE id > 5;
in5ane
18.09.2007, 06:08:57
Coś nie bardzo Cię czaję... no jak wyświetlasz te newsy od największego do najmniejszego to nadal tak będzie, a to co masz w bazie czy raczej nie masz danego rekordu o danym ID to kogo to interesuje. Po co Ci to?! Przemyśl to co robisz, a dopiero napisz. Da Ci to coś, że będziesz miał te newsy po kolei?