optimize mark selected function

This commit is contained in:
Andrew Dolgov 2006-09-19 05:16:42 +01:00
parent 472782e8bf
commit 18eddb2cb9
2 changed files with 26 additions and 16 deletions

View File

@ -164,25 +164,10 @@
if ($subop == "markSelected") {
$ids = split(",", db_escape_string($_GET["ids"]));
$cmode = sprintf("%d", $_GET["cmode"]);
foreach ($ids as $id) {
markArticlesById($link, $ids, $cmode);
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"]);
}
}
print "<rpc-reply>";
print "<counters>";
getAllCounters($link);

View File

@ -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();