Golang Вывод новостей на сайт в обратном порядке из массива
Прошу направить в нужное направление) Недавно начал изучать go, столкнулся с такой проблемой как вывод новостей в web в обратном порядке, как лучше это реализовать? Тут я делаю запрос к БД и передаю в структурный массив.
func index(w http.ResponseWriter, r *http.Request) {
t, err := template.ParseFiles("templates/index.html", "templates/header.html", "templates/footer.html")
if err != nil {
fmt.Fprintf(w, err.Error())
}
db, err := sql.Open("mysql", "root:root@tcp(127.0.0.1:8889)/golang")
if err != nil {
panic(err)
}
defer db.Close()
res, err := db.Query("SELECT * FROM articles")
if err != nil {
panic(err)
}
posts = []Article{}
for res.Next() {
var post Article
err = res.Scan(&post.Id, &post.Title, &post.Anons, &post.Text)
if err != nil {
panic(err)
}
posts = append(posts, post)
fmt.Println(fmt.Sprintf("кол-во постов %d", len(posts)))
//fmt.Println(fmt.Sprintf("ID: %d title: %s anonse: %s text %s", post.Id, post.Title, post.Anons, post.Text))
}
t.ExecuteTemplate(w, "index", posts)
}
Тут моя html страница на которой приохотит вывод данных
{{define "index"}}
{{template "header"}}
<main role="main" class="inner cover">
<h1 class="cover-heading">Главная страница теста Goland</h1>
<p class="lead"></p>
{{ range . }}
<div class="aler alert-danger">
<h2>{{.Title}}</h2>
<p>{{ .Anons}}</p>
<a href="/post/{{ .Id }}" class="btn btn-danger">Читать статью</a>
</div>
{{end}}
<br>
<a href="#" class="btn btn-lg btn-secondary">Узнать больше!</a>
</p>
</main>
{{template "footer"}}
{{end}}
Собственно текущий скриншот. Видно что новости которая должна быть первой отображается последней.
Ответы (1 шт):
Автор решения: Senior Pomidor
→ Ссылка
когда вы прочитали все элементы в posts, то разверните этот массив. либо отсортируйте уже в SQL SELECT * FROM articles ORDER BY id DESC