diff --git a/website/public/API/searchPageNumber.php b/website/public/API/searchPageNumber.php
index df5483a..8248c34 100644
--- a/website/public/API/searchPageNumber.php
+++ b/website/public/API/searchPageNumber.php
@@ -6,11 +6,11 @@ require_once ("../../queries/connect.php");
require_once ("../../queries/checkInput.php");
require_once ("../../queries/user.php");
require_once ("../../queries/group_page.php");
+require_once ("../../queries/friendship.php");
+require_once ("../../queries/group_member.php");
if (isset($_SESSION["userID"]) &&
- getRoleByID($_SESSION["userID"]) != 'banned') {
-
- $user_perpage = $group_perpage = 20;
+ getRoleByID($_SESSION["userID"]) != 'banned') {$user_perpage = $group_perpage = 20;
$user_currentpage = $group_currentpage = 1;
if (isset($_POST['user-pageselect'])) {
@@ -28,20 +28,26 @@ if (isset($_SESSION["userID"]) &&
$search = test_input($_POST['search']);
}
- $user_count = countSomeUsers($search)->fetchColumn();
- $group_count = countSomeGroups($search)->fetchColumn();
-
$filter = "all";
if (isset($_POST['filter'])) {
$filter = test_input($_POST['filter']);
}
+ if ($filter == "all") {
+ $user_count = countSomeUsers($search)->fetchColumn();
+ $group_count = countSomeGroups($search)->fetchColumn();
+ } else {
+ $user_count = countSomeFriends($search);
+ $group_count = countSomeOwnGroups($search);
+ }
+
+
$option = "user";
if (isset($_POST['option'])) {
$option = test_input($_POST['option']);
}
- include("../../views/searchPageNumber.php");
+ include ("../../views/searchPageNumber.php");
} else {
header('HTTP/1.0 403 Forbidden');
-}
\ No newline at end of file
+}
diff --git a/website/queries/friendship.php b/website/queries/friendship.php
index e1a8c53..9575bf5 100644
--- a/website/queries/friendship.php
+++ b/website/queries/friendship.php
@@ -276,4 +276,35 @@ function searchSomeFriends($n, $m, $search) {
$stmt->bindParam(':m', $m, PDO::PARAM_INT);
$stmt->execute();
return json_encode($stmt->fetchAll());
+}
+
+function countSomeFriends($search) {
+ $stmt = prepareQuery("
+ SELECT
+ COUNT(*)
+ FROM
+ `user`
+ INNER JOIN
+ `friendship`
+ WHERE
+ ((`friendship`.`user1ID` = :userID AND
+ `friendship`.`user2ID` = `user`.`userID` OR
+ `friendship`.`user2ID` = :userID AND
+ `friendship`.`user1ID` = `user`.`userID`) AND
+ `user`.`role` != 'banned' AND
+ `friendship`.`status` = 'confirmed') AND
+ (`username` LIKE :keyword OR
+ `fname` LIKE :keyword OR
+ `lname` LIKE :keyword)
+ ORDER BY
+ `fname`,
+ `lname`,
+ `username`
+ ");
+
+ $search = "%$search%";
+ $stmt->bindParam(':keyword', $search);
+ $stmt->bindParam(':userID', $_SESSION["userID"], PDO::PARAM_INT);
+ $stmt->execute();
+ return $stmt->fetchColumn();
}
\ No newline at end of file
diff --git a/website/queries/group_member.php b/website/queries/group_member.php
index 50e6117..7844235 100644
--- a/website/queries/group_member.php
+++ b/website/queries/group_member.php
@@ -55,6 +55,29 @@ function searchSomeOwnGroups($n, $m, $search) {
return json_encode($stmt->fetchAll());
}
+function countSomeOwnGroups($search) {
+ $stmt = prepareQuery("
+ SELECT
+ COUNT(*)
+ FROM
+ `group_page`
+ INNER JOIN
+ `group_member`
+ WHERE
+ `group_member`.`userID` = :userID AND
+ `group_member`.`groupID` = `group_page`.`groupID` AND
+ `group_page`.`status` != 'hidden' AND
+ `name` LIKE :keyword
+ ");
+
+ $search = "%$search%";
+ $stmt->bindParam(':keyword', $search);
+ $stmt->bindParam(':userID', $_SESSION["userID"], PDO::PARAM_INT);
+ $stmt->execute();
+
+ return $stmt->fetchColumn();
+}
+
function addMember($groupID, $userID, $role) {
$stmt = prepareQuery("
INSERT INTO
diff --git a/website/views/search-view.php b/website/views/search-view.php
index e42f985..f00fd3c 100644
--- a/website/views/search-view.php
+++ b/website/views/search-view.php
@@ -48,7 +48,12 @@ $group_n = ($group_currentpage - 1) * $group_perpage;
-