|
|
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo
|
|
Jak wykonać inkrementację wartości w wielu polach na raz |
Autor |
Wiadomość |
Draco demonicus

Posty: 93
|
Wysłany: 12-10-2012, 12:43 Jak wykonać inkrementację wartości w wielu polach na raz
|
|
|
Otóż problem jest taki, że w phpBB2 nie da się kompletnie zmieniać kolejności pól profilu. Zawsze robiłem to manualnie, no ale teraz, gdy pól jest dokładnie 63 do przeskoczenia to po prostu nie mam na to ochoty.
Chciałem zrobić tak aby od pola x do końca zwiększyć wartość o 1. Ale żeby te początkowe miały swoje dawne numery.
Konkretnie to chcę zwiększyć ID w tabeli phpbb_profile_fields o wartość 1 od pola 15 (czyli 1-14 mają być niezmienione).
Chciałbym też zmienić w tabeli phpbb_users nazwę pól analogicznie. Np. user_field_61 na user_field_62 itp.
W phpBB3 było to proste, wystarczyło bez problemu zmienić kolejność w panelu admina. Ewentualnie jeśli jest jakaś modyfikacja do tego to proszę.
Już kiedyś o to pytałem i dzięki temu wiedziałem, że mogę to robić ręcznie, ale teraz problem jest poważniejszy bo musiałbym zmieniać 65 razy wartość w jednej tabeli i 130 razy w drugiej (bo poza user_field_xx jest też user_allow_field_xx.
Jeśli nie zmieniłbym w tej drugiej tabeli tych nazw, wtedy kolejność wpisywanych informacji przez użytkowników by się nie zmieniła, ale opis pół tak.
Np.:
Cytat: | Imię: Mateusz
Miejscowość: Opole |
Jak dodałbym tylko w phpbb_profile_fields pole "Nazwisko" to wyszłoby tak:
Cytat: | Imię: Mateusz
Nazwisko: Opole
Miejscowość: |
Z góry dziękuję za pomoc. Jak ktoś wie jak to zrobić to bardzo dziękuję
EDIT: Ewentualnie, jeśli byłby problem z tymi polami w phpbb_users to proszę tylko o tę inkrementację id w tej pierwszej phpbb_profile_fields. Najwyżej użytkownicy by sobie sami zmienili kolejność tych pól |
_________________ Avek jest mojego autorstwa. Zastrzegam sobie prawo do jego kopiowania, przerabiania i posiadania. Niestosowanie się do tego oznacza kradzież. |
|
|
|
 |
Gadatliwa Kasia
|
|
|
|
MQs
Pomógł: 172 razy Posty: 480
|
Wysłany: 13-10-2012, 05:12
|
|
|
Jeżeli numery id pokrywają się z wierszami (domyślnie tak ma być) to wystarczy
Kod: | UPDATE phpbb_profile_fields SET id = id + 1 WHERE id > 14 |
Jeśli chodzi o nazwy to nie wiem czy zapytaniem coś takiego zrobisz. Najwygodniej chyba pętlę w php napisać i wstawić ją na chwilę w kod forum. |
|
|
|
 |
Draco demonicus

Posty: 93
|
Wysłany: 18-10-2012, 18:56
|
|
|
Kurcze, pokazuje się taki error:
Cytat: | #1062 - Duplicate entry '16' for key 'PRIMARY' |
Wiem o co chodzi, ale nie wiem jak to rozwiązać
15 chce mi zmienić na 16, ale 16 już istnieje bo jeszcze nie została zinkrementowana...
EDIT: Nie ma jakiegoś sposobu na inkrementację od ostatniego id? Żeby 74 zmieniło na 75, dopiero wtedy 73 na 74 potem 72 na 73 itp. Ja tak kiedyś robiłem ręcznie, ale wtedy było tego trochę mniej.
Mogę to zrobić, ale przy większej ilości łatwiej o pomyłkę, stąd pytam o zautomatyzowanie tego |
_________________ Avek jest mojego autorstwa. Zastrzegam sobie prawo do jego kopiowania, przerabiania i posiadania. Niestosowanie się do tego oznacza kradzież. |
|
|
|
 |
MQs
Pomógł: 172 razy Posty: 480
|
Wysłany: 18-10-2012, 22:47
|
|
|
Faktycznie zapomniałem o duplikatach. Dodaj na końcu jeszcze |
|
|
|
 |
Draco demonicus

Posty: 93
|
Wysłany: 19-10-2012, 14:14
|
|
|
Wielkie dzięki Wszystko działa i po wyczyszczeniu cache pole są przestawione, tak jak chciałem |
_________________ Avek jest mojego autorstwa. Zastrzegam sobie prawo do jego kopiowania, przerabiania i posiadania. Niestosowanie się do tego oznacza kradzież. |
|
|
|
 |
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Dodaj temat do Ulubionych Wersja do druku
|
Kopiowanie wszelkich treści zawartych na forum, modyfikacji oraz instrukcji bez zgody administracji i autorów tematów/postów zabronione!
Powered by phpBB modified by Przemo © 2003 phpBB
| Strona wygenerowana w 0,21 sekundy. Zapytań do SQL: 12 | |
 |
|