diff --git a/internal/database/articles.go b/internal/database/articles.go index 36dd0ca..c85aeda 100644 --- a/internal/database/articles.go +++ b/internal/database/articles.go @@ -138,15 +138,17 @@ func PreviousAndNextArticleUrlByID(store *Store, ID int) (nextUrl string, previo nextResult, previousResult := "#", "#" query, err := store.Prepare(` - select id,title, content, slug, original_url, source_id, created_at from articles where id = $1; + select id,title, content, slug, original_url, source_id, created_at from articles where id < $1 and id > $2 order by id desc limit 1; `) if err != nil { + fmt.Println("Err 1:", err) return nextResult, previousResult, err } defer query.Close() - row := query.QueryRow(ID - 1) + row := query.QueryRow(ID, 0) if err != nil { + fmt.Println("Err 2:", err) return nextResult, previousResult, err } @@ -159,14 +161,25 @@ func PreviousAndNextArticleUrlByID(store *Store, ID int) (nextUrl string, previo previousResult = fmt.Sprintf("/%d/%s", r.ID, r.Slug) - row = query.QueryRow(ID + 1) + query2, err := store.Prepare(` + select id,title, content, slug, original_url, source_id, created_at from articles where id < $1 and id > $2 order by id asc limit 1; + `) if err != nil { + fmt.Println("Err 1:", err) + return nextResult, previousResult, err + } + defer query2.Close() + + row = query2.QueryRow(ID+1000, ID) + if err != nil { + fmt.Println("Err 3:", err) return nextResult, previousResult, err } content = "" err = row.Scan(&r.ID, &r.Title, &content, &r.Slug, &r.OriginalUrl, &r.SourceId, &r.CreatedAt) if err != nil { + fmt.Println("Err 4:", err) return nextResult, previousResult, err } nextResult = fmt.Sprintf("/%d/%s", r.ID, r.Slug) diff --git a/server b/server index 562f6bd..fcd3ad9 100755 Binary files a/server and b/server differ