![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 3 Dołączył: 2.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem z zamiana 2 wierszy, mianowicie zmienia mi się wszystko oprócz id. Zrobiłem dla tego celu osobne zapytanie ale nic się nie dzieje.
Czy coś tu jest nie tak? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
'$id1+1' - rozrozniaj tekst od wartosci. to co zapisales to tekst a nie wartosc
powiinno byc: $id1+1 -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 3 Dołączył: 2.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Niestety to nie jest w tym problem. Bo bez znaczników ' też nie działa, poprostu zamienia tylko jeden element, jeśli miałem wiersz np.
1 a 2 b 3 c 4 d 5 e to po zamianie 3 z 4 jest tak: 1 a 2 b 4 d 4 c 5 e a ja chce zeby id było zawsze po kolei. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Niestety to nie jest w tym problem Problem wlasnie byl miedzy innymi w tym. I masz go poprawic. Masz tez mase innych bledow: nie:`seq`='id1' a: `seq`=$id1 nie: `seq`='$id' a: `seq`=$id Jak to poprawisz to pokaz kod jeszcze raz. kod ma zawierac juz poprawki poza tym nie powinienes do sortowania uzywac pola ID tylko oddzielnego pola. Teraz przy zmianie pol sasiednich mozesz miec maly klops -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Taaaa... I jeszcze powiedz, że masz na id ustawiony klucz primary autoincrement... Zgadłem? Wiesz co to powoduje czy nie wiesz o czym mówię? Bo jeśli masz tak ustawione to cud, że Ci pozwoliło na zamianę 3 na 4 już choćby raz. Primary zabrania stosować w kolumnie dwóch identycznych wartości w różnych wierszach. W takim wypadku należy więc lecieć ze zmianą nie od przodu bo Ci wywali zapytanie gdyż w jednym momencie pojawią się dwa wiersze z identyczną wartością. W takie sytuacji modyfikujesz parametr autoincrement tablicy zwiększając go o tyle o ile przesuwasz, a numery posuwając się od ostatniego ku pierwszemu, bo nigdy wtedy nie nastąpi zduplikowanie indeksu. Czyli przesuwasz wszystko o 4 w górę to autoincrement zwiększasz o 4 a rekordy lecąc od tyłu też o 4 robiąc update na tej kolumnie. Tak jak opisałeś, czyli idąc od najmniejszego można by zrobić gdybyś zmniejszał id, bo wtedy po odjęciu nie nastąpi duplikacja indeksu. Ale trochę myślenia perspektywicznego jak widać Ci brakuje i nie przewidujesz jak to wpłynie na bazę.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 3 Dołączył: 2.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
nawet w ten sposób nie działa. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Czy Ty właściwie czytasz co piszą ludzie? Masz primary ustawiony na tę kolumnę seq czy nie? jeśli to Twój klucz główny w tabeli to sobie możesz tak długo zmieniać ją dopóki nie trafisz na identyczny już istniejący, bo wtedy Ci zapytanie się wysypie. Po to jest primary by temu zapobiegać. On ma być unikalny dla całej tabeli i modyfikowanie go "na hura", bez myślenia co się stanie, przynosi dla "freestyle'erów" nie grzeszących myśleniem, niespodzianki
![]() -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 3 Dołączył: 2.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ustawienia tabeli:
[PHP]
A może zmienie z integer na char? EDIT: no niestety nie dziala
Działa - może komuś się przyda. Ten post edytował neo1986kk 23.10.2009, 14:15:30 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.07.2025 - 02:15 |