There are various ways the code could be organised. It could be in a plugin or your functions.php where it would register shortcodes. OR it could be in a custom page template, provided it is in a distinctly named file there may not even be a need to create a child theme.
I will describe a page which does both search form and result display table, you can fiddle the search terms and submit it and get a refreshed display, the rest of the page is normal WordPress, normal header, menu, sidebars, footer etc.
So in your theme folder, make a copy of page.php and call it “booksearch.php”, most of it will be unchanged, but you will be adding a good deal of code to it, find the place just after “the loop” but still inside the div with class “the-content”, add code that does this:
– first add a form that contains the search fields, say “Author, title, edition, first year and last year”, this form will have a SEARCH button which does a submit using post data to an URL which is the same page as this page. In laying out the html for this form, test if the POST variables are set, if they are echo them into the form values, if not set then choose default values to search on.
– next you do an SQL search using the fields from the form (or defaults), maybe you limit the results to say a hundred rows.
– THEN EITHER:
a) there are no results and you display “<p>No books match your search.</p>”
OTHERWISE
b) Output a table header and column titles, then for each result output a table row with the results. Then you close the table.
Many elaborations are possible such as:
– javascript to clear the search form.
– pagination of search results.
– a link in each row to edit that row, participate in a blog on that book ?
When I was getting started with this type of application I found this plugin to be very helpful, it showed me examples of forms, SQL queries, and so on:
https://wordpress.org/plugins/wp-csv-to-database/ Author: Ruhul Amin