X-Git-Url: http://mop.ddnsfree.com/gitweb/?p=brisk.git;a=blobdiff_plain;f=web%2FObj%2Fdbase_pgsql.phh;h=f9f6888756d663f8ab8b1ca46c107fff2bd11d8e;hp=f7cb1a94e60f4ee37cb3616270972a0231846306;hb=fd07ee7fe6eb1e0193fe878bfc49a9071f1ad8d2;hpb=28fa285b05832a5c3521870482d3c29dfc71f4ac diff --git a/web/Obj/dbase_pgsql.phh b/web/Obj/dbase_pgsql.phh index f7cb1a9..f9f6888 100644 --- a/web/Obj/dbase_pgsql.phh +++ b/web/Obj/dbase_pgsql.phh @@ -709,6 +709,7 @@ class BriskDB /* * matches management */ + $codes_where = ""; $mtc_sql = sprintf("UPDATE %sbin5_matches SET (mazzo_next, mult_next) = (%d, %d) WHERE ttok = '%s' RETURNING *;", $G_dbpfx, $table->mazzo, $table->mult, $sql_ttok); if (($mtc_pg = $this->query($mtc_sql)) == FALSE || pg_numrows($mtc_pg) != 1) { @@ -729,12 +730,35 @@ class BriskDB log_crit(sprintf("bin5_points_save: failed at insert table order [%s]", $ord_sql)); break; } + $codes_where .= sprintf("%scode = %d", ($i == 0 ? "" : " OR "), $ucodes[$i]); } if ($i < $n) break; + + $cnt_sql = sprintf("UPDATE %susers SET (match_cnt, game_cnt) + = (match_cnt+1, game_cnt+1) WHERE %s;", + $G_dbpfx, $codes_where); + error_log($cnt_sql); + if (($cnt_pg = $this->query($cnt_sql)) == FALSE || pg_affected_rows($cnt_pg) != $n) { + log_crit(sprintf("bin5_points_save: failed increment match and game [%s]", $cnt_sql)); + break; + } } else { $mtc_obj = pg_fetch_object($mtc_pg,0); + + for ($i = 0 ; $i < $n ; $i++) { + $codes_where .= sprintf("%scode = %d", ($i == 0 ? "" : " OR "), $ucodes[$i]); + } + + $cnt_sql = sprintf("UPDATE %susers SET (game_cnt) + = (game_cnt+1) WHERE %s;", + $G_dbpfx, $codes_where); + error_log($cnt_sql); + if (($cnt_pg = $this->query($cnt_sql)) == FALSE || pg_affected_rows($cnt_pg) != $n) { + log_crit(sprintf("bin5_points_save: failed increment game [%s]", $cnt_sql)); + break; + } } /*