Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql][php] Powiększanie wartości w tabelach o wartości innej tabeli
alogator
post 18.12.2013, 13:40:07
Post #1





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 13.11.2006
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


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ź.

Go to the top of the page
+Quote Post
nospor
post 18.12.2013, 13:42:38
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
alogator
post 18.12.2013, 14:34:44
Post #3





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 13.11.2006
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


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ść

Go to the top of the page
+Quote Post
Turson
post 18.12.2013, 14:38:27
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


Bez średnika przed " na końcu

Ten post edytował Turson 18.12.2013, 14:38:33
Go to the top of the page
+Quote Post
alogator
post 18.12.2013, 14:41:11
Post #5





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 13.11.2006
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


poprawiłem ale dalej nic sad.gif
Go to the top of the page
+Quote Post
phpion
post 18.12.2013, 15:06:51
Post #6





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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. ;
Go to the top of the page
+Quote Post
nospor
post 18.12.2013, 15:08:34
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
alogator
post 18.12.2013, 15:14:55
Post #8





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 13.11.2006
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


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

Go to the top of the page
+Quote Post
nospor
post 18.12.2013, 15:19:05
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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

Tu masz napisane jak sprawdzac bledy bazy
Temat: Jak poprawnie zada pytanie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
alogator
post 18.12.2013, 15:42:55
Post #10





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 13.11.2006
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


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.

Go to the top of the page
+Quote Post
nospor
post 18.12.2013, 16:18:17
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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 :/


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
alogator
post 19.12.2013, 12:18:45
Post #12





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 13.11.2006
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


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.
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: 15.06.2025 - 13:39