Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql][php] Powiększanie wartości w tabelach o wartości innej tabeli
Forum PHP.pl > Forum > Przedszkole
alogator
Witajcie.
Mam dwie tabelki:
1.

KOD | ILOSC
123 | 2
123 | 2
123 | 5
321 | 2
321 | 4

2.

KOD | ILOSC_NOWA
123 | 2
321 | 2

Jak w tabeli 2. powiększyć wartości w kolumnie ILOSC_NOWA o wartosci z tabeli 1. dla poszczególnych wierszy (w tabeli 1. dane będą przechowywane tymczasowo)

Z góry dzięki za podpowiedź.

nospor
http://dev.mysql.com/doc/refman/5.0/en/update.html
Cytat
UPDATE items,month SET items.price=month.price
WHERE items.id=month.id;

Tylko w twoim przypadku zamiast items.price=month.price bedzie items.price=items.price+month.price
alogator
ok dopasowując to do mojej rzeczywistej tabeli mam coś takiego

  1. $wynq="UPDATE `artykul`,`dostawa_temp2` SET artykul.ILOSC=dostawa_temp2.ILOSC+artykul.ILOSC where artykul.KOD_ART=dostawa_temp2.KOD_ART;"

tylko nie działa mi to z tym warunkiem WHERE.
czy to dlatego że tam jest więcej wartości niż jedna do zaktualizowania ?

Jeżeli dam WHERE dla konkretnej wartości np where artykul.KOD_ART='123'; to zaktualizuje tą wartość

Turson
Bez średnika przed " na końcu
alogator
poprawiłem ale dalej nic sad.gif
phpion
Cytat(Turson @ 18.12.2013, 14:38:27 ) *
Bez średnika przed " na końcu

Co miałoby to dać?

Spróbuj tak:
  1. UPDATE
  2. artykul
  3. SET
  4. ILOSC = ILOSC + (
  5. SELECT
  6. COALESCE(SUM(dostawa_temp2.ILOSC), 0)
  7. FROM
  8. dostawa_temp2
  9. WHERE
  10. dostawa_temp2.KOD_ART = artykul.KOD_ART
  11. )
  12. ;
nospor
Cytat(alogator @ 18.12.2013, 14:34:44 ) *
ok dopasowując to do mojej rzeczywistej tabeli mam coś takiego

  1. $wynq="UPDATE `artykul`,`dostawa_temp2` SET artykul.ILOSC=dostawa_temp2.ILOSC+artykul.ILOSC where artykul.KOD_ART=dostawa_temp2.KOD_ART;"

tylko nie działa mi to z tym warunkiem WHERE.
czy to dlatego że tam jest więcej wartości niż jedna do zaktualizowania ?

Jeżeli dam WHERE dla konkretnej wartości np where artykul.KOD_ART='123'; to zaktualizuje tą wartość

Wg pierwszego postu,to zle nazwales swoje pola w tym zapytania, wiec niby jak madzialac?
alogator
Nospor dopasowałem do rzeczywistych tabel, które wyglądają tak:

1.

KOD_ART | ILOSC
123 | 2
123 | 2
123 | 5
321 | 2
321 | 4

2.

KOD_ART | ILOSC
123 | 2
321 | 2

nospor
No to zapytanie jest ok. Patrrzyles czy nie pluje jakims bledem?

Tu masz napisane jak sprawdzac bledy bazy
Temat: Jak poprawnie zada pytanie
alogator
Wykonałem tego sql bezpośrednio z phpmyadmina i działa
(dostałem error z niego na początku :
#1267 - Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_polish_ci,IMPLICIT) for operation '='
ale poprawiłem kolumny zeby były takie same)

Natomiast z poziomu php nie działa i dostaję info Query was empty.

nospor
Cytat
Natomiast z poziomu php nie działa i dostaję info Query was empty.
Znaczy ze nieumiejetenie wstawiles sprawdzanie bledu z bazy....

No ale skoro poprawiles blad z PMA to powinno juz dzialac bez mojego debugowania bazy. Jesli jednak nadal ci nie dziala to dostajesz jeszcze jakis inny blad. Wstaw wiec poprawnie debugowanie bledu bazy. Przeciez tam po polsku podane na przykladzie jest.... Jak mozna to zle przepisac :/
alogator
Pykło i śmiga - faktycznie dodałem na początku obsługę błędów i porobiłem kilka literówek.
Temat do zamknięcia.

Dzięki Nospor.
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.