I got all data from MySQL table and I printed it with "log" function but I need to print it on an HTML page. I could print just one column. I want to print all products data. How Can I Do This?
In short: I want to list all products for the shop page, but I can only list one product. (I will add hundreds of products. Currently, there are only 3 products in my table.)
I haven't solved it for 2 days, I will be very glad if you can help. Many thanks... Go File
package main
import ( "database/sql" "fmt" "log" "net/http" "text/template"
_ "github.com/go-sql-driver/mysql"
)
type product struct { ID int Name string Stock int Price float32 }
var products product
func handler(w http.ResponseWriter, r *http.Request) {
products = product{
ID: products.ID,
Name: products.Name,
Stock: products.Stock,
Price: products.Price,
}
appointment, _ := template.ParseFiles("ot.html")
appointment.Execute(w, products)
}
func main() { fmt.Println("Go MySQL Tutorial")
sqlType := "mysql"
sqlUsn := "root"
sqlPass := "2582064"
sqlDatabase := "gowdb"
db, err := sql.Open(sqlType, sqlUsn+":"+sqlPass+"@/"+sqlDatabase)
if err != nil {
panic(err.Error())
}
defer db.Close()
results, err := db.Query("SELECT * FROM products")
if err != nil {
panic(err.Error())
}
for results.Next() {
err = results.Scan(&products.ID, &products.Stock, &products.Price, &products.Name)
if err != nil {
panic(err.Error())
}
log.Println(products.Name)
}
if err != nil {
panic(err.Error())
}
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
HTML PAGE
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>PRODUCT 1</h1>
<div>NAME: {{.Name}}</div>
<div>PRICE: {{.Price}}</div>
<div>STOCK: {{.Stock}}</div>
<div>ID: {{.ID}}</div>
<div>BUY FROM: xxx.com</div>
<h1>PRODUCT 2</h1>
<div>NAME: {{.Name}}</div>
<div>PRICE: {{.Price}}</div>
<div>STOCK: {{.Stock}}</div>
<div>ID: {{.ID}}</div>
<div>BUY FROM: xxx.com</div>
<h1>PRODUCT 3</h1>
<div>NAME: {{.Name}}</div>
<div>PRICE: {{.Price}}</div>
<div>STOCK: {{.Stock}}</div>
<div>ID: {{.ID}}</div>
<div>BUY FROM: xxx.com</div>
</body>
</html>
OUTPUT ON LOG(thats ok)
Electron Mask Filtrop Mask Aircrop Mask
OUTPUT ON HTML PAGE
PRODUCT 1 NAME: Aircrop Mask PRICE: 19 STOCK: 2 ID: 2 BUY FROM: xxx.com
PRODUCT 2 NAME: Aircrop Mask PRICE: 19 STOCK: 2 ID: 2 BUY FROM: xxx.com
PRODUCT 3 NAME: Aircrop Mask PRICE: 19 STOCK: 2 ID: 2 BUY FROM: xxx.com