Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 如何更改sqlite get函数?_Function_Sqlite_Go_Web - Fatal编程技术网

Function 如何更改sqlite get函数?

Function 如何更改sqlite get函数?,function,sqlite,go,web,Function,Sqlite,Go,Web,如何更改Get函数,使其只返回一个设备对象 func GetEquipmentByID(Id string) (equipment Equipment, err error) { equipment = Equipment{} err = Db.QueryRow("select ID, Name, Description, ImgPath, Category, Availability, Amount, Storage from Equipment where Id = $1",

如何更改Get函数,使其只返回一个设备对象

func GetEquipmentByID(Id string) (equipment Equipment, err error) {
    equipment = Equipment{}
    err = Db.QueryRow("select ID, Name, Description, ImgPath, Category, Availability, Amount, Storage from Equipment where Id = $1", Id).Scan(&equipment.ID, &equipment.Name, &equipment.Description, &equipment.ImgPath, &equipment.Category, &equipment.Availability, &equipment.Amount, &equipment.Storage)
    return 
}
我想使用此功能填充控制器中的设备阵列。但是现在它不起作用了,因为我的函数返回2个对象(设备和错误)

我想在这里使用它:

    func Cart(w http.ResponseWriter,    r   *http.Request)  {
        data := CartData{ 
        Name: "Cart",
        Equipment: model.GetEquipment(model.Db),
        CartList: nil,  
        Pages: []Page{
            {
                Title: "Meine Geräte", 
                Active: false,
                Link: "/my-equipment",
            },
            {
                Title: "Equipment", 
                Active: false,
                Link: "/equipment",
            },
            {
                Title: "Logout",
                Active: false,
                Link: "/logout",
            },
        },

    }

        session, _ := store.Get(r, "cookie-name")


      list := session.Values["EquipmentIDs"].(string)

      result := strings.Split(list, ",")
      for i := range result {
            fmt.Print(i)
            fmt.Println(result[i])
        }



     for i:= range result {
equipment, err := model.GetEquipmentByID(result[i])
if err != nil {
    // handle error
}
data.CartList[i] = equipment // ERROR BECAUSE OF THIS LINE
}



        tmpl:= template.Must(template.ParseFiles("template/base_user.html", "template/cart.html"))
        tmpl.ExecuteTemplate(w, "base", data)
        }
    }

所以我的第二个问题是,我如何在我的cart函数中传递数组作为Go中的数据,永远不要忽略错误。比如说,

equipment, err := model.GetEquipment(model.Db)
if err != nil {
    // handle error
}
data := CartData{ 
    Name: "Cart",
    Equipment: equipment,
    // ...
}

在围棋中,永远不要忽略错误。比如说,

equipment, err := model.GetEquipment(model.Db)
if err != nil {
    // handle error
}
data := CartData{ 
    Name: "Cart",
    Equipment: equipment,
    // ...
}

append方法解决了我的问题

    session, _ := store.Get(r, "cookie-name")
    list := session.Values["EquipmentIDs"].(string)

      result := strings.Split(list, ",")
      for i := range result {
            fmt.Print(i)
            fmt.Println(result[i])
        }

var List[]model.Equipment

        for i := range result {
        equipment, err := model.GetEquipmentByID(result[i])
        if err != nil {
            // handle error
        }
        fmt.Println(i)
        fmt.Println(equipment)
        List = append(List,equipment)
    //  List[i] = equipment
    //  data.CartList[i] = equipment
        }


fmt.Println(List)
    data := CartData{ 
    Name: "Cart",
    Equipment: model.GetEquipment(model.Db),
    CartList: List,
    Pages: []Page{
        {
            Title: "Meine Geräte", 
            Active: false,
            Link: "/my-equipment",
        },
        {
            Title: "Equipment", 
            Active: false,
            Link: "/equipment",
        },
        {
            Title: "Logout",
            Active: false,
            Link: "/logout",
        },
    },

}

append方法解决了我的问题

    session, _ := store.Get(r, "cookie-name")
    list := session.Values["EquipmentIDs"].(string)

      result := strings.Split(list, ",")
      for i := range result {
            fmt.Print(i)
            fmt.Println(result[i])
        }

var List[]model.Equipment

        for i := range result {
        equipment, err := model.GetEquipmentByID(result[i])
        if err != nil {
            // handle error
        }
        fmt.Println(i)
        fmt.Println(equipment)
        List = append(List,equipment)
    //  List[i] = equipment
    //  data.CartList[i] = equipment
        }


fmt.Println(List)
    data := CartData{ 
    Name: "Cart",
    Equipment: model.GetEquipment(model.Db),
    CartList: List,
    Pages: []Page{
        {
            Title: "Meine Geräte", 
            Active: false,
            Link: "/my-equipment",
        },
        {
            Title: "Equipment", 
            Active: false,
            Link: "/equipment",
        },
        {
            Title: "Logout",
            Active: false,
            Link: "/logout",
        },
    },

}

换了我的职位。现在我收到以下错误消息:undefined Cartlist这是错误所在的位置:Cart[i]=equipment@ChristopherG1994:
CartList[i]=设备
:错误
未定义的CartList
数据.CartList[i]=设备
。这会给我以下错误:对于i:=范围结果{设备,错误:=model.GetEquipmentByID(结果[i])如果err!=nil{//handle error}fmt.Println(设备)data.CartList[i]=device}紧急服务[::1]:60965:运行时错误:索引超出范围可能是因为CartData中的Cart:nil,但我还必须使用什么?更改了我的帖子。现在我收到以下错误消息:undefined Cartlist这是错误所在的位置:Cart[i]=equipment@ChristopherG1994:
CartList[i]=设备
:错误
未定义的CartList
数据.CartList[i]=设备
。这会给我以下错误:对于i:=范围结果{设备,错误:=model.GetEquipmentByID(结果[i])如果err!=nil{//handle error}fmt.Println(设备)data.CartList[i]=device}panic serving[::1]:60965:运行时错误:索引超出范围可能是因为Cart:nil,在CartData中,但我还必须使用什么呢?虽然这个代码片段可以解决这个问题,但确实有助于提高帖子的质量。请记住,您将在将来回答读者的问题,而这些人可能不知道您的代码建议的原因。谢谢您的建议。在将来,我将努力提高我的文章的质量。虽然这个代码片段可能会解决这个问题,但它确实有助于提高你文章的质量。请记住,您将在将来回答读者的问题,而这些人可能不知道您的代码建议的原因。谢谢您的建议。今后我会努力提高我的帖子质量。