I need to write some code, it is something like an internet journal. The problem is that I need to connect to my SQL database on a server, then download a table (students) and display the column of this table in the field selectInput. I want to store the table students to dataframe students and then display the column from this table in ui.R in selectInput("student", "Имя:", ""). Here is my code:
server.R
library(shiny)
library(RMySQL)
courseDBChoise <- function(course){
courseDB <- dbConnect(MySQL(), user="root", password="password",
                       host="111.111.111.1", db=course)
dbSendQuery(conn=courseDB, "SET NAMES utf8")
students <<- dbReadTable(conn = courseDB, "students")
return(students)}
shinyServer(
     function(input,output,session){
          test <- reactive({courseDBChoise(input$course)})
          observe({
               updateTextInput(session, "student", 
                               value = test)
          })
     }
)
ui.R
library(shiny)
shinyUI(fluidPage(
     titlePanel("Журнал преподавателя"),
     sidebarPanel(
          h4("Пожалуйста, выберете курс, фамилию ученика и номер работы:"),
          br(),br(),
          selectInput("student", "Имя:", ""),
          selectInput("course", "Курс:",
                      list("Математика"="mathematics",
                           "Физика"="physics",
                           "Химия"="chemistry")),
          selectInput("homework","№ Работы",as.character(1:30)),
          br(), br(), br(), br(), br(), br(), br(), br(), br(), br(), br(),
          img(src="head.png",height=75,width=75,align="center"),
          "ФФФХИ, МГУ, Москва"
          ),
     mainPanel(wellPanel(
          h4("Введите оценки, полученные за работу"),
          br(),
          fluidRow(
               column(2,strong("1"),align="center"),
               column(2,strong("2"),align="center"),
               column(2,strong("3"),align="center"),
               column(2,strong("4"),align="center"),
               column(2,strong("5"),align="center"),
               column(2,strong("6"),align="center")
               ),
          fluidRow(
               column(2,textInput("N1",label="",value=NA)),
               column(2,textInput("N2",label="",value=NA)),
               column(2,textInput("N3",label="",value=NA)),
               column(2,textInput("N4",label="",value=NA)),
               column(2,textInput("N5",label="",value=NA)),
               column(2,textInput("N6",label="",value=NA))
               ),
          br(),
          fluidRow(
               column(2,strong("7"),align="center"),
               column(2,strong("8"),align="center"),
               column(2,strong("9"),align="center"),
               column(2,strong("10"),align="center"),
               column(2,strong("11"),align="center"),
               column(2,strong("12"),align="center")
               ),
          fluidRow(
               column(2,textInput("N7",label="",value=NA)),
               column(2,textInput("N8",label="",value=NA)),
               column(2,textInput("N9",label="",value=NA)),
               column(2,textInput("N10",label="",value=NA)),
               column(2,textInput("N11",label="",value=NA)),
               column(2,textInput("N12",label="",value=NA))
               ),
          br(),
          submitButton("Занести оценки в журнал"), 
          align="center"
          ))
     )
)