From dc11fd691f11b7f0b432b0e7ce2792ccc3319309 Mon Sep 17 00:00:00 2001 From: ganome Date: Fri, 31 Jan 2025 16:19:21 -0700 Subject: [PATCH] Created a running loop to accept user input for searching/quit functionality. More search features coming soon! --- src/main.cpp | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index f97e7da..1af462c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,9 +1,13 @@ +#include +#include #include #include #include +#include #include #include #include +#include /* * Implementing SQLite3 on suggestion from MD.rpm - Thanks MD! * @@ -20,11 +24,34 @@ int main() { const char* dbFile = "hardware.db"; sqlite3* hardwareDB; + std::string msearch; + std::string msearchlower; + createDB(dbFile); - searchTable(dbFile, "7800x3d"); // Replace this string with a variable that is the query grabbed from the user! + char quit = '&'; - system("sleep 1s"); + while(tolower(quit) != 'q') { + std::cout << "========================\n"; + std::cout << "Welcome to the Universal Hardware database!\n"; + std::cout << "(S)earch for a part by model name\n"; + std::cout << "(Q)uit hardware database\n"; + std::cin >> quit; + switch(tolower(quit)) { + case 's': + std::cout << "Enter search string: "; + std::cin >> msearch; + msearchlower = boost::algorithm::to_lower_copy(msearch); + searchTable(dbFile, msearchlower); // Replace this string with a variable that is the query grabbed from the user! + break; + case 'q': + break; + // default: + // break; + } + } + + // system("sleep 1s"); return 0; } @@ -39,13 +66,13 @@ static int createDB(const char* s) { return 0; } -static int searchTable(const char* s, std::string msearch) { +static int searchTable(const char* s, std::string msearchlower) { sqlite3* hardwareDB; int exit = sqlite3_open(s, &hardwareDB); - std::string sql = "SELECT * FROM cpu WHERE model='" + msearch + "';"; + std::string sql = "SELECT * FROM cpu WHERE model LIKE '%" + msearchlower + "%';"; sqlite3_exec(hardwareDB, sql.c_str(), callback, NULL, NULL);