X-Git-Url: https://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2FObj%2Fdbase_pgsql.phh;h=f8b75382df973e5c51b2103ae36c04f8a455d107;hb=9878243b4e002b50ee444cf906b9e13faba4fe01;hp=f7cb1a94e60f4ee37cb3616270972a0231846306;hpb=66f94441ec85a5555c7280aff03ba7e5d661c364;p=brisk.git diff --git a/web/Obj/dbase_pgsql.phh b/web/Obj/dbase_pgsql.phh index f7cb1a9..f8b7538 100644 --- a/web/Obj/dbase_pgsql.phh +++ b/web/Obj/dbase_pgsql.phh @@ -433,7 +433,7 @@ class BriskDB } if ($chals->ismod()) { - Challenges::save_data(&$chals); + Challenges::save_data($chals); } Challenges::unlock_data($a_sem); @@ -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,34 @@ 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; + } } /*