dongzhi6905 2014-07-12 11:29
浏览 71
已采纳

Go,没有参数$ 1

Im trying to get the values of the database by this way. But the compiler throw me an error when I go to /myapps direction.

Structure:

type App struct{
    Title string
    Author string
    Description string
}

Function:

func myappsHandler(w http.ResponseWriter, r *http.Request){
    db, err := sql.Open("postgres"," user=postgres dbname=lesson4 host=localhost password=1234 sslmode=disable")
    if err != nil{
        log.Fatal(err)
    }
        rows, err := db.Query(`SELECT title, author, description FROM apps
                                 WHERE title ILIKE $1
                                 OR author ILIKE $1
                                 OR description ILIKE $1`)
            defer rows.Close()

            if err != nil{
                log.Fatal(err)
            }

            apps := []App{}
            for rows.Next(){
                b := App{}
                err := rows.Scan(&b.Title, &b.Author, &b.Description)

                if err != nil{
                log.Fatal(err)
            }
                apps = append(apps, b)
            }

            render(w, "myapps.html", map[string]interface{}{"apps" : apps})

        db.Close()
}

I read like this in the HTML:

{{ range .apps}}
  <tr>
    <td>{{ .Title }}</td>
    <td>{{ .Author }}</td>
    <td>{{ .Description }}</td>
    <td> <form action="/delete">
          <p class="navbar-form navbar-right"><button type="submit" class="btn btn-danger">Borrar</button> </p>
       </form></td>
  </tr>
{{ end  }}

The error is : there is no parameter $1.

Thank you in advance.

  • 写回答

2条回答 默认 最新

  • douxia6554 2014-07-13 12:10
    关注

    I was able to resolve my issue, thank you anyways for your answers and help :)

    I will post the working code:

    Structure:

    type App struct{
        Title string
        Author string
        Description string
    }
    

    Handler of Apps:

     db := SetupDB()
    
            rows, err := db.Query(`SELECT title, author, description FROM apps`)
                PanicIf(err)
    
                defer rows.Close()
    
                apps := []App{}
                for rows.Next(){
                    b := App{}
                    err := rows.Scan(&b.Title, &b.Author, &b.Description)
                PanicIf(err)
    
                    apps = append(apps, b)
                }
    
                render(w, "myapps.html", map[string]interface{}{"apps" : apps})
    
            db.Close()
    

    And the html:

    {{ range .apps}}
      <tr>
        <td>{{ .Title }}</td>
        <td>{{ .Author }}</td>
        <td>{{ .Description }}</td>
        <td> <form action="/delete">
              <p class="navbar-form navbar-right"><button type="submit" class="btn btn-danger">Borrar</button> </p>
           </form></td>
      </tr>
    {{ end  }}
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效