mam taki problem:
chcę zmieniać liczbę porządkową rekordu za pomocą skryptu php w trakcie uaktualniania danych w bazie.
wyglądać ma to tak:
1. stan początkowy:
position | rekord
-------------------
1 | rekord1
2 | rekord2
3 | rekord3
4 | rekord4
5 | rekord5
2. po zmianie:
position | rekord
-------------------
1 | rekord1
2 | rekord5
3 | rekord2
4 | rekord3
5 | rekord4
3. po kolejnej zmianie:
position | rekord
-------------------
1 | rekord1
2 | rekord2
3 | rekord5
4 | rekord3
5 | rekord4
IF($position!=$rek[position]){ mysql_query("UPDATE tabela SET position=position+1 WHERE position>=$position") OR die(mysql_error()); }
powyższe rozwiązanie powoduje, że po każdym uaktualnieniu danych, czyli zmianie którejś z pozycji, te, które mają wyższą liczbę porządkową zwiększają ją o 1.
problem tkwi w tym, że jeśli po raz kolejny uaktualnię dane w tabeli, te z wyższą liczbą porządkową znowu zwiększają ją o 1.
wygląda to wtedy tak:
1. stan początkowy:
position | rekord
-------------------
1 | rekord1
2 | rekord2
3 | rekord3
4 | rekord4
5 | rekord5
2. po zmianie:
position | rekord
-------------------
1 | rekord1
2 | rekord5
3 | rekord2
4 | rekord3
5 | rekord4
3. po kolejnej zmianie:
position | rekord
-------------------
1 | rekord1
2 | rekord2
3 | rekord5
5 | rekord3
6 | rekord4
jak zastosować pętlę, żeby rekord3 miał lp 4 a rekord4 lp 5?
pozdrawiam