summaryrefslogtreecommitdiff
path: root/dbhandling.c
diff options
context:
space:
mode:
Diffstat (limited to 'dbhandling.c')
-rw-r--r--dbhandling.c70
1 files changed, 51 insertions, 19 deletions
diff --git a/dbhandling.c b/dbhandling.c
index 8252ca0..4b1cb93 100644
--- a/dbhandling.c
+++ b/dbhandling.c
@@ -14,18 +14,22 @@ void select_from_table(sqlite3 *db, args_e target, char *qp)
int rc;
int found = 0;
- const unsigned char *name, *value, *status;
+ const unsigned char *name, *author, *value, *status;
const char *type;
char *query_param = malloc(strlen(qp) + 2);
switch (target) {
case ANIME:
type = "Episode";
- sql = "SELECT * FROM anime WHERE NAME LIKE ?1 ORDER BY ID;";
+ sql = "SELECT * FROM anime WHERE name LIKE ?1 ORDER BY id;";
break;
case MANGA:
type = "Chapter";
- sql = "SELECT * FROM manga WHERE NAME LIKE ?1 ORDER BY ID;";
+ sql = "SELECT * FROM manga WHERE name LIKE ?1 ORDER BY id;";
+ break;
+ case BOOK:
+ type = "Chapter";
+ sql = "SELECT * FROM book WHERE name LIKE ?1 ORDER BY id;";
break;
default:
fprintf(stderr, "table does not exist...\n");
@@ -43,12 +47,23 @@ void select_from_table(sqlite3 *db, args_e target, char *qp)
sqlite3_bind_text(stmt, 1, query_param, -1, SQLITE_TRANSIENT);
- while(sqlite3_step(stmt) == SQLITE_ROW) {
- name = sqlite3_column_text(stmt, 1);
- value = sqlite3_column_text(stmt, 2);
- status = sqlite3_column_text(stmt, 3);
- printf("%s, %s %s, %s\n", name, type, value, status);
- found = 1;
+ if (target == BOOK) {
+ while(sqlite3_step(stmt) == SQLITE_ROW) {
+ name = sqlite3_column_text(stmt, 1);
+ author = sqlite3_column_text(stmt, 2);
+ value = sqlite3_column_text(stmt, 3);
+ status = sqlite3_column_text(stmt, 4);
+ printf("%s - %s, %s %s, %s\n", author, name, type, value, status);
+ found = 1;
+ }
+ } else {
+ while(sqlite3_step(stmt) == SQLITE_ROW) {
+ name = sqlite3_column_text(stmt, 1);
+ value = sqlite3_column_text(stmt, 2);
+ status = sqlite3_column_text(stmt, 3);
+ printf("%s, %s %s, %s\n", name, type, value, status);
+ found = 1;
+ }
}
if (!found) {
@@ -70,16 +85,23 @@ void update_entry(sqlite3 *db, args_e target, char *qp, char *value, char *statu
switch (target) {
case ANIME:
if (status == NULL) {
- sql = "UPDATE anime SET EPISODE=?1 WHERE NAME=?2;";
+ sql = "UPDATE anime SET episode=?1 WHERE name=?2;";
} else {
- sql = "UPDATE anime SET EPISODE=?1, STATUS=?2 WHERE NAME=?3;";
+ sql = "UPDATE anime SET episode=?1, status=?2 WHERE name=?3;";
}
break;
case MANGA:
if (status == NULL) {
- sql = "UPDATE manga SET CHAPTER=?1 WHERE NAME=?2;";
+ sql = "UPDATE manga SET chapter=?1 WHERE name=?2;";
+ } else {
+ sql = "UPDATE manga SET chapter=?1, status=?2 WHERE name=?3;";
+ }
+ break;
+ case BOOK:
+ if (status == NULL) {
+ sql = "UPDATE book SET chapter=?1 WHERE name=?2;";
} else {
- sql = "UPDATE manga SET CHAPTER=?1, STATUS=?2 WHERE NAME=?3;";
+ sql = "UPDATE book SET chapter=?1, status=?2 WHERE name=?3;";
}
break;
default:
@@ -110,7 +132,7 @@ void update_entry(sqlite3 *db, args_e target, char *qp, char *value, char *statu
sqlite3_finalize(stmt);
}
-void add_entry(sqlite3 *db, args_e target, char *name, char *value, char *status)
+void add_entry(sqlite3 *db, args_e target, char *name, char *author, char *value, char *status)
{
char *sql;
int rc;
@@ -119,10 +141,13 @@ void add_entry(sqlite3 *db, args_e target, char *name, char *value, char *status
switch (target) {
case ANIME:
- sql = "INSERT INTO anime (NAME, EPISODE, STATUS) VALUES (?1, ?2, ?3);";
+ sql = "INSERT INTO anime (name, episode, status) VALUES (?1, ?2, ?3);";
break;
case MANGA:
- sql = "INSERT INTO manga (NAME, CHAPTER, STATUS) VALUES (?1, ?2, ?3);";
+ sql = "INSERT INTO manga (name, chapter, status) VALUES (?1, ?2, ?3);";
+ break;
+ case BOOK:
+ sql = "INSERT INTO book (name, author, chapter, status) VALUES (?1, ?2, ?3, ?4);";
break;
default:
fprintf(stderr, "table does not exist...\n");
@@ -135,9 +160,16 @@ void add_entry(sqlite3 *db, args_e target, char *name, char *value, char *status
exit_with_error(db, "failure fetching data: ");
}
- sqlite3_bind_text(stmt, 1, name, -1, SQLITE_STATIC);
- sqlite3_bind_text(stmt, 2, value, -1, SQLITE_STATIC);
- sqlite3_bind_text(stmt, 3, status, -1, SQLITE_STATIC);
+ if (target == BOOK) {
+ sqlite3_bind_text(stmt, 1, name, -1, SQLITE_STATIC);
+ sqlite3_bind_text(stmt, 2, author, -1, SQLITE_STATIC);
+ sqlite3_bind_text(stmt, 3, value, -1, SQLITE_STATIC);
+ sqlite3_bind_text(stmt, 4, status, -1, SQLITE_STATIC);
+ } else {
+ sqlite3_bind_text(stmt, 1, name, -1, SQLITE_STATIC);
+ sqlite3_bind_text(stmt, 2, value, -1, SQLITE_STATIC);
+ sqlite3_bind_text(stmt, 3, status, -1, SQLITE_STATIC);
+ }
rc = sqlite3_step(stmt);
printf("Entry %s added!\n", name);