Заполнение и перечисление вложенной структуры

Может ли кто-нибудь помочь мне, пожалуйста, заполните шаблон из вложенных данных структуры, здесь код, который получает данные из объявления mysql, заполняет Эм очень хорошо

package main

import (
        "html/template"
        "log"
        "net/http"
        "database/sql"
        "github.com/gorilla/mux"
        _ "github.com/go-sql-driver/mysql"
)

var (
        o one
)

type one struct {
        point bool
        em    []two
}

type two struct {
        id  uint16
        uid uint16
}

func checkErr(err error) {
        if err != nil {
                log.Fatal(err)
        }
}

func listandlist(w http.ResponseWriter, r *http.Request) {
        db, err = sql.Open("mysql", "torwald:ragnar@tcp(127.0.0.1:3306)/harpy")
        checkErr(err)

        defer db.Close()

        err = db.Ping()
        checkErr(err)

        rows, err := db.Query("select * from global where point=?", o.point)
        checkErr(err)

        em := []two{}

        for rows.Next() {
                p := two{}
                err := rows.Scan(&p.id, &p.uid)
                if err != nil {
                        log.Println(err)
                        continue
                }
                log.Println("full list id and uid", p.id, p.uid)
                em = append(em, p)
        }

        if r.Method != "POST" {
                t, err := template.ParseFiles("templates/one.html", "templates/two.html", "templates/tree.html")
                if err != nil {
                        log.Fatal(w, err.Error())
                        return
                }
                t.ExecuteTemplate(w, "list", o)
                return

        }
}

но в шаблоне пусто

{{ define "list" }} {{ template "header" .}}
{{range .two}}
{{.id}}
{{.uid}}
{{end}}
{{ template "footer" }} {{ end }}

не могли бы сказать мне, пожалуйста, когда я сломаюсь? как я могу получить информацию из вложенной структуры в шаблоне?

в таблице mysql global у нас есть структура

TABLE `global` (
  `id` int(11) unsigned NOT NULL,
  `uid` int(11) unsigned NOT NULL,
  `point`  tinyint(4) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id_UNIQUE` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin

и заполнен данными, образец

id | uid | point
 1 |  2  |   0
 2 |  3  |   0
 2 |  1  |   1
 3 |  1  |   0
 1 |  3  |   0
 3 |  2  |   1

и в результате запустите этот запрос с point = 1, я хочу увидеть результат шаблона с двумя строками:

2 1
3 2

Привет, я не понимаю твой вопрос. Как вы хотите, чтобы результат выглядел, в отличие от того, как он на самом деле выходит в данный момент? Можете ли вы уменьшить это до Минимальный, полный, проверяемый пример?

Max von Hippel 10.09.2018 00:00

Спасибо, Макс, я добавил базовую структуру и хотел получить результат, надеюсь, он понятен

Oleksandr Chub 10.09.2018 00:32

Я думаю, вам не хватает информации о том, как вы извлекаете данные из базы данных. Что это за тип db и как вы его инициализируете?

dolan 10.09.2018 00:40

Спасибо, Долан. стандартный mysql, работает отлично, но я тоже добавил его информацию сейчас

Oleksandr Chub 10.09.2018 00:57

Готов поспорить, пока в ваших структурах есть только частные переменные, ничто другое (включая код шаблона) не сможет их увидеть. Было бы полезно, если бы вы могли сделать свое воспроизведение не требующим базы данных (это, похоже, не имеет прямого отношения к вопросу о шаблонах).

David Maze 10.09.2018 03:04

Начните с экспорта ваших полей.

Volker 10.09.2018 05:21

Вам нужно экспортировать поля своей структуры. Кроме того, Template.ExecuteTemplate() возвращает ошибку, которую вы не проверяете, всегда проверять все ошибки.

icza 10.09.2018 09:07
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
0
7
74
0

Другие вопросы по теме