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; -