Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie SQL
Forum PHP.pl > Forum > Bazy danych
Warmix
Witam, mam problem.

Mam tabelę "users", ma ona pola: "user_id" oraz "ilosc". Dodaję rekordy: 1, 1; 2, 2; 1, 1. W PHP chciałbym zrobić coś takiego:
Chciałbym przy użyciu UPDATE usuwać wartości z "ilosc", jeżeli user_id = 1. Więcej: jeżeli zapytanie znajdzie w polu "user_id" wartość 1, to odejmuje od "ilosc" -1, z tym, że jeżeli w polu "ilosc" jest wartość 0, to opuszcza ten rekord i sprawdza kolejny. I oczywiście Limit 1 musi buc, aby za jednym razem odejmowało tylko -1 z jednego pola. Czyli jak mam user_id = 1, ilosc = 1, to odejmie z pola ilosc -1 i zostanie 0. Przy kolejnym wykonaniu zapytania ponownie widzi ten rekord user_id = 1, ale widzi wartość w "ilosc = 0" to opuszcza to pole i nie usuwa z niego -1, ale dalej widzi kolejny rekord z user_id = 1, i ponownie jest "ilosc = 1" to usuwa z tego pola itd. Jeżeli we wszystkich polach "ilosc" jest wartość 0, to tak jakby nie wykonywało zapytania.
Prosiłbym także o kawałek kody php, który by to sprawdzał.

Mam nadzieję, że jasno to napisałem, w razie czego, to piszcie, spróbuję to przybliżyć...
peter13135
hmm. a jak jest id 2, to ma odjąć 1, czy 2 ?
Bardzo namieszałeś, daj mi przykład jaki ma być wynik dla takiej tabeli :

user_id | ilość
1 | 0
1 | 1
1 | 2
2 | 0
2 | 1
2 | 2
3 | 0
3 | 1
3 | 2
1 | 5
1 | 1
Warmix
Ma odejmować -1 z pola "ilosc" tylko i wyłącznie z "user_id" = 1.

peter13135
  1. UPDATE users SET value=value-1 WHERE value>0 AND user_id=1

podziwiam specjalistów z DW ;p
Warmix
dzięki działa...

wiesz, jak szukam pomocy, to jednocześnie na kilku forach biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.