Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak uprościć polecenie ?, INSERT
aniol
post 5.02.2008, 13:51:16
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:
  1. mysql_query("UPDATE $mysql_table SET licznik_stol='0', licznik_krzeslo='0', licznik_fotel='0'...itd WHERE id='$id'");


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
  1. WHERE id='$id'"


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 ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
kitol
post 5.02.2008, 14:05:15
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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 23:24