From 18eddb2cb9b58c015e2cc04dd0d41008a03961a4 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 19 Sep 2006 05:16:42 +0100 Subject: [PATCH] optimize mark selected function --- backend-rpc.php | 19 ++----------------- functions.php | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/backend-rpc.php b/backend-rpc.php index 6de87aa84..92fe23468 100644 --- a/backend-rpc.php +++ b/backend-rpc.php @@ -164,25 +164,10 @@ if ($subop == "markSelected") { $ids = split(",", db_escape_string($_GET["ids"])); - $cmode = sprintf("%d", $_GET["cmode"]); - foreach ($ids as $id) { - - if ($cmode == 0) { - db_query($link, "UPDATE ttrss_user_entries SET - marked = false - WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]); - } else if ($cmode == 1) { - db_query($link, "UPDATE ttrss_user_entries SET - marked = true - WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]); - } else { - db_query($link, "UPDATE ttrss_user_entries SET - marked = NOT marked - WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]); - } - } + markArticlesById($link, $ids, $cmode); + print ""; print ""; getAllCounters($link); diff --git a/functions.php b/functions.php index bb80cac57..600a776c6 100644 --- a/functions.php +++ b/functions.php @@ -2587,6 +2587,31 @@ } } + function markArticlesById($link, $ids, $cmode) { + + $tmp_ids = array(); + + foreach ($ids as $id) { + array_push($tmp_ids, "ref_id = '$id'"); + } + + $ids_qpart = join(" OR ", $tmp_ids); + + if ($cmode == 0) { + db_query($link, "UPDATE ttrss_user_entries SET + marked = false,last_read = NOW() + WHERE ($ids_qpart) AND owner_uid = " . $_SESSION["uid"]); + } else if ($cmode == 1) { + db_query($link, "UPDATE ttrss_user_entries SET + marked = true + WHERE ($ids_qpart) AND owner_uid = " . $_SESSION["uid"]); + } else { + db_query($link, "UPDATE ttrss_user_entries SET + marked = NOT marked,last_read = NOW() + WHERE ($ids_qpart) AND owner_uid = " . $_SESSION["uid"]); + } + } + function catchupArticlesById($link, $ids, $cmode) { $tmp_ids = array();