Tweak html layout to improve formatting.
[quanweb.git] / main / db.go
index fa34828d5504562bea5837ff03917b05f8fe49a0..21c6818d8c5e6ad23998d30cd5ce10b35a881b94 100644 (file)
@@ -161,12 +161,33 @@ func queryBooksByIds(ids []int) []Book {
   return res
 }
 
   return res
 }
 
+func queryBookPathById(id int) (string) {
+  query := "SELECT b.path FROM Books b WHERE b.id=$1"
+
+  ps, err := getDb().Prepare(query)
+  if nil != err {
+    report("Failed to Prepare query:  " + query, err)
+    return ""
+  }
+  defer ps.Close()
+
+  row := ps.QueryRow(id)
+  var path sql.NullString
+  err = row.Scan(&path)
+  if nil != err {
+    report(fmt.Sprintf("Failed to retrieve path for book id %v: ", id), err)
+    return ""
+  }
+
+  return nsVal(path)
+}
+
 func queryIds(criteria []SearchTerm) []int {
   fmt.Println("queryIds():", criteria)
 
   query := "SELECT b.id FROM Books b" +
            " INNER JOIN Authors a ON a.id=b.author" +
 func queryIds(criteria []SearchTerm) []int {
   fmt.Println("queryIds():", criteria)
 
   query := "SELECT b.id FROM Books b" +
            " INNER JOIN Authors a ON a.id=b.author" +
-           " LEFT OUTER JOIN Series s ON s.id=b.series"
+           " LEFT OUTER JOIN Series s ON s.id=b.series" 
 
   args := make([]interface{}, len(criteria))
 
 
   args := make([]interface{}, len(criteria))
 
@@ -190,6 +211,8 @@ func queryIds(criteria []SearchTerm) []int {
     args[i] = criterion.Text
   }
 
     args[i] = criterion.Text
   }
 
+  query += " ORDER BY b.path"
+
   res := []int{}
 
   ps, err := getDb().Prepare(query)
   res := []int{}
 
   ps, err := getDb().Prepare(query)
@@ -207,7 +230,7 @@ func queryIds(criteria []SearchTerm) []int {
   }
   defer rows.Close()
 
   }
   defer rows.Close()
 
-  for rows.Next(); rows.Next(); {
+  for rows.Next() {
     var id int
     rows.Scan(&id)
     res = append(res, id)
     var id int
     rows.Scan(&id)
     res = append(res, id)