Output not as I want

Hi there,

I have the following code:
/// package main

import (

"database/sql"

"log"

"net/http"

"text/template"

_ "github.com/go-sql-driver/mysql"

)

type Kinderen struct {

nummer int

naam string

woonplaats string

leeftijd string

zakgeld string

kleedgeld string

totaal string

}

func dbConn() (db *sql.DB) {

dbDriver := "mysql"

dbUser := "root"

dbPass := "Studie01"

dbName := "zakgeld"

db, err := sql.Open(dbDriver, dbUser+":"+dbPass+"@/"+dbName)

if err != nil {

panic(err.Error())

}

return db

}

var tmpl = template.Must(template.ParseGlob("form/*"))

func Index(w http.ResponseWriter, r *http.Request) {

db := dbConn()

selDB, err := db.Query("SELECT * FROM Kinderen ORDER BY nummer DESC")

if err != nil {

panic(err.Error())

}

emp := Kinderen{}

res := []Kinderen{}

for selDB.Next() {

var nummer int

var naam, woonplaats, leeftijd, zakgeld, kleedgeld, totaal string

err = selDB.Scan(&nummer, &naam, &woonplaats, &leeftijd, &zakgeld, &kleedgeld, &totaal)

if err != nil {

panic(err.Error())

}

emp.nummer = nummer

emp.naam = naam

emp.woonplaats = woonplaats

emp.leeftijd = leeftijd

emp.zakgeld = zakgeld

emp.kleedgeld = kleedgeld

emp.totaal = totaal

res = append(res, emp)

}

tmpl.ExecuteTemplate(w, "Index", res)

defer db.Close()

}

func Show(w http.ResponseWriter, r *http.Request) {

db := dbConn()

nId := r.URL.Query().Get("nummer")

selDB, err := db.Query("SELECT * FROM Kinderen WHERE nummer=?", nId)

if err != nil {

panic(err.Error())

}

emp := Kinderen{}

res := []Kinderen{}

for selDB.Next() {

var naam, woonplaats string

var leeftijd, zakgeld, kleedgeld, totaal string

err = selDB.Scan(&naam, &woonplaats, &leeftijd, &zakgeld, &kleedgeld, &totaal)

if err != nil {

panic(err.Error())

}

emp.naam = naam

emp.woonplaats = woonplaats

emp.leeftijd = leeftijd

emp.zakgeld = zakgeld

emp.kleedgeld = kleedgeld

emp.totaal = totaal

res = append(res, emp)

tmpl.ExecuteTemplate(w, "Show", emp)

defer db.Close()

}

}

func New(w http.ResponseWriter, r *http.Request) {

tmpl.ExecuteTemplate(w, "New", nil)

}

func Edit(w http.ResponseWriter, r *http.Request) {

db := dbConn()

nId := r.URL.Query().Get("nummer")

selDB, err := db.Query("SELECT * FROM Kinderen WHERE nummer=?", nId)

if err != nil {

panic(err.Error())

}

emp := Kinderen{}

for selDB.Next() {

var nummer int

var naam, woonplaats, leeftijd, zakgeld, kleedgeld, totaal string

err = selDB.Scan(&nummer, &naam, &woonplaats, &leeftijd, &zakgeld, &kleedgeld, &totaal)

if err != nil {

panic(err.Error())

}

emp.nummer = nummer

emp.naam = naam

emp.woonplaats = woonplaats

emp.leeftijd = leeftijd

emp.zakgeld = zakgeld

emp.kleedgeld = kleedgeld

emp.totaal = totaal

}

tmpl.ExecuteTemplate(w, "Edit", emp)

defer db.Close()

}

func Insert(w http.ResponseWriter, r *http.Request) {

db := dbConn()

if r.Method == "POST" {

naam := r.FormValue("naam")

woonplaats := r.FormValue("woonplaats")

leeftijd := r.FormValue("leeftijd")

zakgeld := r.FormValue("zakgeld")

kleedgeld := r.FormValue("kleedgeld")

totaal := r.FormValue("totaal")

insForm, err := db.Prepare("INSERT INTO Kinderen(naam, woonplaats, leeftijd, zakgeld, kleedgeld, totaal) VALUES(?,?,?,?,?,?)")

if err != nil {

panic(err.Error())

}

insForm.Exec(naam, woonplaats, leeftijd, zakgeld, kleedgeld, totaal)

log.Println("INSERT: Naam: " + naam + " | woonplaats: " + woonplaats + " | leeftijd: " + leeftijd + " | zakgeld: " + zakgeld + " | kleedgeld:" + kleedgeld + " | totaal:" + totaal)

}

defer db.Close()

http.Redirect(w, r, "/", 301)

}

func Update(w http.ResponseWriter, r *http.Request) {

db := dbConn()

if r.Method == "POST" {

naam := r.FormValue("naam")

woonplaats := r.FormValue("woonplaats")

leeftijd := r.FormValue("leeftijd")

zakgeld := r.FormValue("zakgeld")

kleedgeld := r.FormValue("kleedgeld")

totaal := r.FormValue("totaal")

insForm, err := db.Prepare("UPDATE Kinderen SET naam=?, woonplaats=?, leeftijd=?, zakgeld=?, kleedgeld=?, totaal=? WHERE nummer=?")

if err != nil {

panic(err.Error())

}

insForm.Exec(naam, woonplaats, leeftijd, zakgeld, kleedgeld, totaal)

log.Println("UPDATE: Naam: " + naam + " | woonplaats: " + woonplaats + " | leeftijd: " + leeftijd + " | zakgeld: " + zakgeld + " | kleedgeld" + kleedgeld)

}

defer db.Close()

http.Redirect(w, r, "/", 301)

}

func Delete(w http.ResponseWriter, r *http.Request) {

db := dbConn()

emp := r.URL.Query().Get("nummer")

delForm, err := db.Prepare("DELETE FROM Kinderen WHERE nummer=?")

if err != nil {

panic(err.Error())

}

delForm.Exec(emp)

log.Println("DELETE")

defer db.Close()

http.Redirect(w, r, "/", 301)

}

func main() {

log.Println("Server started on: http://localhost:8080")

http.HandleFunc("/", Index)

http.HandleFunc("/show", Show)

http.HandleFunc("/new", New)

http.HandleFunc("/edit", Edit)

http.HandleFunc("/insert", Insert)

http.HandleFunc("/update", Update)

http.HandleFunc("/delete", Delete)

http.ListenAndServe(":8080", nil)

}

My output is nevertheless not as I want:
image

There is only a line in the first colum, although I have added informatin in the database in multiple colums.

Where does the code go wrong?

Please use markdown to format your code it is unreadable

fmt.Frpintf("Put your code here")

Like this

```golang
fmt.Fprintf(“Put your code here”)
```

Sorry,

The code is:

fmt.Frpintf (" Version:1.0 StartHTML:000000222 EndHTML:000012168 StartFragment:000006027 EndFragment:000012028 StartSelection:000006030 EndSelection:000012024 SourceURL:https://forum.golangbridge.org/t/output-not-as-i-want/11535

package main

import (

"database/sql"

"log"

"net/http"

"text/template"

_ "[github.com/go-sql-driver/mysql](http://github.com/go-sql-driver/mysql)"

)

type Kinderen struct {

nummer int

naam string

woonplaats string

leeftijd string

zakgeld string

kleedgeld string

totaal string

}

func dbConn() (db *sql.DB) {

dbDriver := "mysql"

dbUser := "root"

dbPass := "Studie01"

dbName := "zakgeld"

db, err := sql.Open(dbDriver, dbUser+":"+dbPass+"@/"+dbName)

if err != nil {

panic(err.Error())

}

return db

}

var tmpl = template.Must(template.ParseGlob("form/*"))

func Index(w http.ResponseWriter, r *http.Request) {

db := dbConn()

selDB, err := db.Query("SELECT * FROM Kinderen ORDER BY nummer DESC")

if err != nil {

panic(err.Error())

}

emp := Kinderen{}

res := []Kinderen{}

for selDB.Next() {

var nummer int

var naam, woonplaats, leeftijd, zakgeld, kleedgeld, totaal string

err = selDB.Scan(&nummer, &naam, &woonplaats, &leeftijd, &zakgeld, &kleedgeld, &totaal)

if err != nil {

panic(err.Error())

}

emp.nummer = nummer

emp.naam = naam

emp.woonplaats = woonplaats

emp.leeftijd = leeftijd

emp.zakgeld = zakgeld

emp.kleedgeld = kleedgeld

emp.totaal = totaal

res = append(res, emp)

}

tmpl.ExecuteTemplate(w, "Index", res)

defer db.Close()

}

func Show(w http.ResponseWriter, r *http.Request) {

db := dbConn()

nId := r.URL.Query().Get("nummer")

selDB, err := db.Query("SELECT * FROM Kinderen WHERE nummer=?", nId)

if err != nil {

panic(err.Error())

}

emp := Kinderen{}

res := []Kinderen{}

for selDB.Next() {

var naam, woonplaats string

var leeftijd, zakgeld, kleedgeld, totaal string

err = selDB.Scan(&naam, &woonplaats, &leeftijd, &zakgeld, &kleedgeld, &totaal)

if err != nil {

panic(err.Error())

}

emp.naam = naam

emp.woonplaats = woonplaats

emp.leeftijd = leeftijd

emp.zakgeld = zakgeld

emp.kleedgeld = kleedgeld

emp.totaal = totaal

res = append(res, emp)

tmpl.ExecuteTemplate(w, "Show", emp)

defer db.Close()

}

}

func New(w http.ResponseWriter, r *http.Request) {

tmpl.ExecuteTemplate(w, "New", nil)

}

func Edit(w http.ResponseWriter, r *http.Request) {

db := dbConn()

nId := r.URL.Query().Get("nummer")

selDB, err := db.Query("SELECT * FROM Kinderen WHERE nummer=?", nId)

if err != nil {

panic(err.Error())

}

emp := Kinderen{}

for selDB.Next() {

var nummer int

var naam, woonplaats, leeftijd, zakgeld, kleedgeld, totaal string

err = selDB.Scan(&nummer, &naam, &woonplaats, &leeftijd, &zakgeld, &kleedgeld, &totaal)

if err != nil {

panic(err.Error())

}

emp.nummer = nummer

emp.naam = naam

emp.woonplaats = woonplaats

emp.leeftijd = leeftijd

emp.zakgeld = zakgeld

emp.kleedgeld = kleedgeld

emp.totaal = totaal

}

tmpl.ExecuteTemplate(w, "Edit", emp)

defer db.Close()

}

func Insert(w http.ResponseWriter, r *http.Request) {

db := dbConn()

if r.Method == "POST" {

naam := r.FormValue("naam")

woonplaats := r.FormValue("woonplaats")

leeftijd := r.FormValue("leeftijd")

zakgeld := r.FormValue("zakgeld")

kleedgeld := r.FormValue("kleedgeld")

totaal := r.FormValue("totaal")

insForm, err := db.Prepare("INSERT INTO Kinderen(naam, woonplaats, leeftijd, zakgeld, kleedgeld, totaal) VALUES(?,?,?,?,?,?)")

if err != nil {

panic(err.Error())

}

insForm.Exec(naam, woonplaats, leeftijd, zakgeld, kleedgeld, totaal)

log.Println("INSERT: Naam: " + naam + " | woonplaats: " + woonplaats + " | leeftijd: " + leeftijd + " | zakgeld: " + zakgeld + " | kleedgeld:" + kleedgeld + " | totaal:" + totaal)

}

defer db.Close()

http.Redirect(w, r, "/", 301)

}

func Update(w http.ResponseWriter, r *http.Request) {

db := dbConn()

if r.Method == "POST" {

naam := r.FormValue("naam")

woonplaats := r.FormValue("woonplaats")

leeftijd := r.FormValue("leeftijd")

zakgeld := r.FormValue("zakgeld")

kleedgeld := r.FormValue("kleedgeld")

totaal := r.FormValue("totaal")

insForm, err := db.Prepare("UPDATE Kinderen SET naam=?, woonplaats=?, leeftijd=?, zakgeld=?, kleedgeld=?, totaal=? WHERE nummer=?")

if err != nil {

panic(err.Error())

}

insForm.Exec(naam, woonplaats, leeftijd, zakgeld, kleedgeld, totaal)

log.Println("UPDATE: Naam: " + naam + " | woonplaats: " + woonplaats + " | leeftijd: " + leeftijd + " | zakgeld: " + zakgeld + " | kleedgeld" + kleedgeld)

}

defer db.Close()

http.Redirect(w, r, "/", 301)

}

func Delete(w http.ResponseWriter, r *http.Request) {

db := dbConn()

emp := r.URL.Query().Get("nummer")

delForm, err := db.Prepare("DELETE FROM Kinderen WHERE nummer=?")

if err != nil {

panic(err.Error())

}

delForm.Exec(emp)

log.Println("DELETE")

defer db.Close()

http.Redirect(w, r, "/", 301)

}

func main() {

log.Println("Server started on: http://localhost:8080")

http.HandleFunc("/", Index)

http.HandleFunc("/show", Show)

http.HandleFunc("/new", New)

http.HandleFunc("/edit", Edit)

http.HandleFunc("/insert", Insert)

http.HandleFunc("/update", Update)

http.HandleFunc("/delete", Delete)

http.ListenAndServe(":8080", nil)

}")

Use three backticks ``` and not apostrophes and it will work better…

Tnx!

Just one more thing or maybe two

  1. Remove the first line or make it a comment it makes the code go crazy
fmt.Frpintf (" Version:1.0 StartHTML:000000222 EndHTML:000012168 StartFragment:000006027 EndFragment:000012028 StartSelection:000006030 EndSelection:000012024 SourceURL:https://forum.golangbridge.org/t/output-not-as-i-want/11535

  1. It would be nice if the code was formatted with indentations. Maybe they are not showing because of the problem above. Otherwise can you simple format your code nicely by pasting it in go playground and press the “Format” button. Like this https://play.golang.org/p/KC8EOdBg34t I had to change some & to just &
1 Like

Look inside your database with Mysql Workbench or similar if it looks ok can it be your template which is not working as it should.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.