Searching and filtering data¶
AppGini applications allow users to search and filter data easily.
Quick search¶
Above the table view of each table in your app, you can find the quick search box, which allows you to enter keywords and filter the displayed records accordingly. This is a simple way to find specific records that contain a keyword in any field.
The screenshot below shows the results of a quick search for the word united, showing records where any field contains the word.
Advanced search (filters)¶
Filters provide a more advanced way to search and filter data by configuring and combining multiple conditions. The Filter button above the table view brings a filters page as shown below.
Filter groups and filter conditions¶
Filters are organized into groups, and each group can contain multiple conditions (up to 4 conditions per group). Conditions can be combined so that all or any of the conditions in a group must be met. Similarly, groups can be combined so that all or any of the groups must be met.
This makes it possible to create highly specific queries that can pinpoint exactly the records you want.
For example, if we wish to find all customers from France, Germany or Mexico, whose company names begin with A, M or P, the filters would look like this:
In the above example, we have two groups of conditions. The first group contains conditions for the country, while the second group contains conditions for the company name. The Match all filter groups option is checked, meaning that both groups must be satisfied for a record to be included in the results. Inside each group, the Match all above conditions option is unchecked, meaning that any condition within a group can be satisfied for the group to be considered a match.
Clicking Apply filters will execute the filter query and display the matching records. Here is an example of the results you might see:
The filter icon beside the company name and country column headers indicates that these columns are being filtered.
Comparison operators¶
Each filter condition is composed of:
- A field (e.g., "Country", "Company Name")
-
A comparison operator (e.g., "Equal to", "Greater than", "Less than")
-
A value to compare against (e.g., "France", "Acme Corp")
There are several comparison operators available for filters:
| Filter operator | Matches records where the field : |
|---|---|
| Equal to | exactly equals the specified value. |
| Not equal to | does not equal the specified value. |
| Greater than | is greater than the specified value (for numbers/dates). |
| Greater than or equal to | is greater than or equal to the specified value (for numbers/dates). |
| Less than | is less than the specified value (for numbers/dates). |
| Less than or equal to | is less than or equal to the specified value (for numbers/dates). |
| Like | contains the specified value. % can be optionally used as a wildcard. For example, A% will match any value starting with "A", %A will match any value ending with "A", and A%Z will match any value starting with "A" and ending with "Z". |
| Not like | does not contain the specified value. % can be optionally used as a wildcard. Examples: A% will match any value that doesn't start with "A", %A will match any value that doesn't end with "A", and A%Z will match any value that doesn't start with "A" and end with "Z". |
| Is empty | is empty (i.e., has no value). When this operator is specified, the value box is ignored. |
| Is not empty | is not empty (i.e., has a value). When this operator is specified, the value box is ignored. |
Sorting search results¶
You can sort the search results by one or more fields (up to 4) from the Order by panel in the filters page. The example screenshot below shows the Order by panel with several fields selected for sorting: Country (ascending), then Company Name (ascending), then Total Sales (descending).
Limiting search results by record owner¶
The Records to display panel in the filters page allows users to limit the search results to only those records they own, or to records owned by their group, or to all records. This is a very handy feature to allow users to quickly access their own data without having to sift through records owned by others.
This panel won't be displayed if the current user's permissions don't allow access to records they do not own.
Saving and loading filters¶
Available since AppGini v25.14
Users can save the filters they create for future use. This is particularly useful for complex queries that users may want to run repeatedly. Saved filters can be easily loaded, allowing users to quickly apply their preferred search criteria without having to redefine them each time.
To allow users to save and load filters, ensure that the Allow users to save filters option is enabled for the table in your AppGini project. You can find this option under the Table view settings when editing a table in AppGini.
Now, when users create a filter, they will see the Save and apply filters button at the bottom of the filters page. Clicking this button will display the filtered results and prompt the user to enter a name for the filter to save it. After the filter is saved, users can load it later from the saved filters list at the top of the app (appears in all user area pages). In mobile view, the saved filters list is accessible from the burger menu at the top right corner.
When a saved filter is loaded, users can delete it by clicking the Delete saved filter button that appears at the top of the filtered results. Watch the video below to see how saving and loading filters works:
Note: Saved filters work only for logged users since each user has their own set of saved filters. Guest can't save filters but can copy or bookmark a permalink.
Programmatic controls of saved filters:
- To change the maximum number of saved filters per user (default: 100), set the
MAX_FILTER_LINKS_PER_USERconstant inhooks/__bootstrap.php. - To intercept saved filters functionality, you can redefine the JS functions
AppGini.handleSaveFiltersandAppGini.handleSavedFiltersListinhooks/footer-extras.php. - Saved filters are stored in the
appgini_saved_filtersdatabase table. You can manipulate this table directly if needed.
Simplified filtering using the Search Page Maker plugin¶
The Search Page Maker plugin enhances the filtering capabilities of your AppGini project by allowing you to build custom search pages with advanced filtering options via a simple drag-and-drop interface. With this plugin, you can:
- Create dedicated search pages for specific tables.
-
Add more friendly filters. For example:
-
Date fields can be easily filtered using a date range picker, saving users the need to manually define 2 filter conditions, and correctly handling date formats.
-
Lookup and option list fields can be filtered using a dropdown list of available options, making it easier for users to select the desired value.
-
-
Users can still use the standard filters alongside the enhanced ones, providing flexibility in how they search for records.
Learn more about the Search Page Maker plugin
Filter before showing the table view¶
You can configure specific tables in your AppGini project to show users the filters page first before displaying the table view. This is useful for ensuring that users can refine their search criteria before viewing potentially large datasets. To configure this option, open your project in AppGini, click on the table you want to modify, and then check the Filter before showing table view option under Table view settings.
Excluding fields from filters¶
You can exclude specific fields from being used in filters. For example, you might want to exclude a field like "Notes" from the filters to simplify the search interface or avoid too many matches for fields that are not relevant to your users search use cases.
To configure this option, open your project in AppGini, navigate to the table you want to modify, then click the field you want to exclude from filters and check the Do not filter option.









