Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

For some reason the data is not showing. #1533

Unanswered
nanduGiyer asked this question in Q&A
Discussion options

Issue description

Everything works, but the JSON is not showing any results. I had three records where the query iterated three times, but the result was empty.

Example code

package main
import (
	"encoding/json"
	"fmt"
	"log"
	"net/http"
	"sync"
	"time"
	_ "github.com/go-sql-driver/mysql"
	"github.com/jmoiron/sqlx"
	"github.com/gorilla/mux"
	"raftnandu/services/lib/common"
	"raftnandu/services/lib/config"
	"raftnandu/services/lib/constant"
)
type UserResult struct {
	ID int
	UserName string
	UserType string
	Isactive int
	Createdat time.Time
	Createdby int
	Modifiedby int
	Modfiedat time.Time
	Permissionid int
	Lastlogintime time.Time
	Role string
	Emailid string
	Description string
}
var ctx = common.AppContext{}
var dbcon *sqlx.DB
func main() {
	config.LoadConfigurations()
	
	ctx.DeferredWG = &sync.WaitGroup{}
	
	router := mux.NewRouter()
	router.HandleFunc("/user", GetUsers).Methods("GET")
	
	http.ListenAndServe(":7000", router)
}
func GetUsers(w http.ResponseWriter, r *http.Request) {
	db := getMySQLDB()
	getQuery := `select usr.id as id, 
			usr.username as username, 
			ut.name as usertype, 
			usr.isactive as isactive,
			usr.createdby as createdby, 
			usr.modifiedby as modifiedby,
			usr.permissionid as permissionid,
			usr.lastlogintime as lastlogintime,
			rol.name as role,
			ui.emailid as emailid,
			ui.description as description
		from user usr
		join userinfo ui on ui.userid =usr.id
		join usertype ut on ut.id = usr.type
		join user2role u2r on usr.id = u2r.userid 
		join role rol on rol.id = u2r.roleid`
	rows, err := db.Query(getQuery)
	usrinfo := []UserResult{}
	usr := UserResult{}
	if err != nil {
		fmt.Fprintf(w, "Query Error: "+err.Error())
	} else {
		for rows.Next() {
			rows.Scan(&usr.ID, &usr.UserName, &usr.UserType, &usr.Isactive, &usr.Createdat,
				&usr.Createdby, &usr.Modfiedat, &usr.Modifiedby, &usr.Description, &usr.Role,
				&usr.Permissionid, &usr.Emailid, &usr.Lastlogintime)
			usrinfo = append(usrinfo, usr)			
		}
		json.NewEncoder(w).Encode(usrinfo)
	}
}
func getMySQLDB() *sqlx.DB {
	var err error
	db_type := config.GetEnv(config.DB_TYPE)
	db_port := config.GetEnv(config.DB_PORT)
	db_server := config.GetEnv(config.DB_ADDRESS)
	db_user := config.GetEnv(config.DB_USER)
	db_password := config.GetEnv(config.DB_PASSWORD)
	db_name := config.GetEnv(config.DB_NAME)
	connString := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?parseTime=true",
		db_user, db_password, db_server, db_port, db_name)
	dbcon, err = sqlx.Open(db_type, connString)
	if err != nil {
		log.Fatal("Error connecting to Database connection pool:" + err.Error())
	}
	return dbcon
}

Result:

[
 {
 "ID": 0,
 "UserName": "",
 "UserType": "",
 "Isactive": 0,
 "Createdat": "0001-01-01T00:00:00Z",
 "Createdby": 0,
 "Modifiedby": 0,
 "Modfiedat": "0001-01-01T00:00:00Z",
 "Permissionid": 0,
 "Lastlogintime": "0001-01-01T00:00:00Z",
 "Role": "",
 "Emailid": "",
 "Description": ""
 },
 {
 "ID": 0,
 "UserName": "",
 "UserType": "",
 "Isactive": 0,
 "Createdat": "0001-01-01T00:00:00Z",
 "Createdby": 0,
 "Modifiedby": 0,
 "Modfiedat": "0001-01-01T00:00:00Z",
 "Permissionid": 0,
 "Lastlogintime": "0001-01-01T00:00:00Z",
 "Role": "",
 "Emailid": "",
 "Description": ""
 },
 {
 "ID": 0,
 "UserName": "",
 "UserType": "",
 "Isactive": 0,
 "Createdat": "0001-01-01T00:00:00Z",
 "Createdby": 0,
 "Modifiedby": 0,
 "Modfiedat": "0001-01-01T00:00:00Z",
 "Permissionid": 0,
 "Lastlogintime": "0001-01-01T00:00:00Z",
 "Role": "",
 "Emailid": "",
 "Description": ""
 }
]

Error log

If you have an error log, please paste it here.

Configuration

Driver version (or git SHA):

Go version: run go version in your console

Server version: E.g. MySQL 5.6, MariaDB 10.0.20

Server OS: E.g. Debian 8.1 (Jessie), Windows 10

You must be logged in to vote

Replies: 1 comment

Comment options

Please create MRE.
Issue tracker is not a place to ask support.

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
Converted from issue

This discussion was converted from issue #1532 on January 05, 2024 05:02.

AltStyle によって変換されたページ (->オリジナル) /