Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Aktualizacja wybranego pola w tabeli X
Forum PHP.pl > Forum > Przedszkole
fajfer
Witam,
Jak na początkującego to porwałem się trochę z motyką na słońce i jestem w kropce, brakuje mi pewnego elementu.
Mam w bazie dwie tabele:
  1. dlug (id_dlugu, kwota_dlugu_oddana)
  2. wplaty (id_wplaty, id_dlugu, kwota_wplaty)

Po wprowadzeniu wpłat cząstkowych, zsumować je (kwota_wplaty) dla poszczególnych wpłacających i zaktualizować pole kwota_dlugu_oddana w tabeli dlug.
Od strony bazy, zrobione.

Od strony php ja bym widział to tak, tylko jak to zapisać ??
1.Sprawdzenie maksymalnej wartości dla pola id_dlugu.
2.Wykonanie w pętli Update z Selecta ...SUM() dla id_dlugu=1 kończąc na id_dlugu=max
konys
Na szybko przychodzi mi takie rozwiązanie:
  1. <?php
  2.  mysql_connect('host','user','haslo');
  3.  mysql_select_db('baza');
  4.  $qr1 = 'SELECT id_dlugu FROM dlug';
  5.  $res1 = mysql_query($qr1)
  6. or die( mysql_error() );
  7.  
  8.  $qr3 = 'SELECT id_dlugu, SUM(kwota_wplaty) FROM wplaty WHERE ';
  9.  while( $ob = mysql_fetch_object($res1) )
  10.  {
  11.  $qr3 .= 'id_dlugu = '.$ob->id_dlugu.' OR ';
  12.  }
  13.  $qr3 = substr($qr3,0,-4).' GROUP BY mod_id';
  14.  $res3 = mysql_query($qr3)
  15. or die( mysql_error() );
  16.  
  17.  while( $row = mysql_fetch_row($res3) )
  18.  {
  19.  $upd_qr = 'UPDATE dlug SET kwota_dlugu_oddana='.(int)$row[1].' WHERE id_dlugu='.$row[0];
  20. $upd_res = mysql_query($upd_qr)
  21.  or die( mysql_error() );
  22.  }
  23. ?>


A co do porywania się z motyką na słońce - do odważnych świat należy laugh.gif
fajfer
Wielkie dzięki za pomoc. Działa smile.gif
Zamieniłem mod_id na id_dlugu i działa tak jak potrzebowałem.

>>A co do porywania się z motyką na słońce - do odważnych świat należy laugh.gif
Czasami jednak sytuacja potrafi przerosnąć człowieka.
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.