![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 14.12.2003 Ostrzeżenie: (0%) ![]() ![]() |
Tabela wygląda tak że zawiera rekordy dla każdego usera o id-1, id-2, id-3...... itd
Każdy user w rekordzie ma pola kilku liczników: licznik_stol, licznik_krzeslo, licznik_fotel.....itd Chcę mieć możliwość skasowania (wstawienia 0) do wszystkich liczników dla danego ID. obecnie robię to tak:
Czy można uprościć to polecenie ? Gdy np. było by 100 liczników to musiał bym napisać dość długą linijkę. Może istnieje jakąś składnia umożliwiająca np. wstawienie wartości do wszystkich pól, których nazwy zaczynają się na 'licznik_" ? Druga sprawa: końcowy warunek
A jak bym chciał wyzerować wszystkim userom wszystkie liczniki, chodzi o to czy można to $id zastąpić jakimś znakiem mówiącym, że chodzi o wszystkie id ? Coś w rodzaju '*'. Wiem, że pętla to załatwia, ale czy bez pętli da się prościej ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 162 Pomógł: 26 Dołączył: 19.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Nie da się w ten sposób. Przeprojektuj tabelę, wywal wszystkie liczniki i utwórz tabelę liczniki:
user_id INT, licznik_val INT, licznik_name ENUM('krzeslo', 'stol', tapczan') W takiej tabeli kombinacją warunków WHERE user_id=x AND licznik_name=y możesz wykasować interesujący cię licznik. Gy pominiesz warunek na user_id wykasujesz wszystkich, analogicznie z drugim warunkiem. Co gdy chcesz wykasować tylko dwa liczniki? Dajesz warunek WHERE licznik_name IN ('krzeslo','stol') PS. Piszesz grę online? Ten post edytował kitol 5.02.2008, 15:20:32 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.08.2025 - 23:24 |