Форум программистов, компьютерный форум, киберфорум
Go (Golang)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 2
Регистрация: 31.12.2014
Сообщений: 226

Удаление по id из бд

07.03.2020, 23:33. Показов 2897. Ответов 9

Студворк — интернет-сервис помощи студентам
Доброго времени господа, назрел еще один вопрос, реализовал взаимодействие с бд Mysql (редактирование, добавление, вывод данных) удаление никак не выходит, голова уже кипит, вообщем пишу метод удаления

Go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//deletePost — удаление поста
func deletePost(db *sql.DB, id int) error {
    res, err := db.Exec("DELETE FROM gb_blog.blog_lists WHERE id = ?", id)
    if err != nil {
        return err
    }
 
    affect, err := res.RowsAffected()
    if err != nil {
        return err
    }
 
    fmt.Println("Insert:", affect)
    fmt.Println(res)
    return err
}
 
//Хэнлер Удаляем пост
func (server *Server) delPost(w http.ResponseWriter, r *http.Request) {
    vars := mux.Vars(r)//получаем id при помощи gorillamux
    id, err := strconv.Atoi(vars["id"])
    if err != nil {
        fmt.Fprintf(w, err.Error())
        return
    }
 
    err = deletePost(server.db, id)
    if err != nil {
        fmt.Fprintf(w, err.Error())
        return
    }
    http.Redirect(w, r, "/", http.StatusFound)
}
 
...
 
func main() {
 
...
 
//тут поключение к базе считывание шаблонов и прочие хендлеры
...
router.HandleFunc("/editPost/{id}", s.delPost).Methods("DELETE")
 
port := "8081"
    log.Printf("server start at port: %v", port)
    log.Fatal(http.ListenAndServe(":"+port, nil))
}
html шаблон
HTML5
1
2
3
4
5
6
7
8
{{ define "EDIT" }} {{ template "HEADER" }}
<div class="writeContain">
 
 
    <div class="writeBlock">
        <a class="delLnk" href="/editPost/{{.ID}}">Delete</a></div>
.... форма c данными
</div>
кого интересует весь код, вот pull request
https://github.com/8n0kkw1n/hwgo/pull/13/files

не могу понять что выводить в href самой ссылки вроде все верно вписал, но так ничего не происходит, просто страница обновляется, буду благодарен за помощь
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.03.2020, 23:33
Ответы с готовыми решениями:

Удаление текста после ALT+Enter либо удаление дублей в массиве
подзадача заключается в том, чтобы после определенного символа в моем случае это &quot;ALT+Enter&quot; удалить все слова внутри ячейки....

Как сделать закачку и удаление файлов, создание и удаление каталогов?
Как сделать закачку и удаление файлов, создание и удаление каталогов?

Лечение или удаление вируса Drive.bat - Удаление вирусов
Здравствуйте. Помогите пожалуйста. Словил на флешку этот Driver.bat, который создает ярлыки. Еще и перекинул все на комп. Пробовал...

9
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
08.03.2020, 01:31
Лучший ответ Сообщение было отмечено n0kk как решение

Решение

editPost.html

HTML5
1
2
3
4
5
6
7
8
<div class="writeContain">
 
    <form method="POST" action="/deletePost/{{.ID}}">
        <button type="submit" class="btn btn-danger">Delete</button>
    </form>
 
    <div class="writeBlock">
...
blogServer.go

Code
1
    router.HandleFunc("/deletePost/{id}", s.delPost).Methods("POST")
1
0 / 0 / 2
Регистрация: 31.12.2014
Сообщений: 226
08.03.2020, 04:34  [ТС]
Благодарю Jabbson, по ссылке если делать это только ajax применять?
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
08.03.2020, 04:40
Лучший ответ Сообщение было отмечено n0kk как решение

Решение

Всегда пожалуйста.

Можно или ajax, или через GET метод

HTML5
1
2
3
    <div class="writeBlock">
        <a class="delLnk" href="/deletePost/{{.ID}}">Delete</a>
    </div>
Code
1
router.HandleFunc("/deletePost/{id}", s.delPost).Methods("GET")
1
0 / 0 / 2
Регистрация: 31.12.2014
Сообщений: 226
08.03.2020, 04:56  [ТС]
Jabbson, все, понял, еще раз благодарю, пойду методы почитаю...
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
08.03.2020, 11:01
Удалять через GET?
0
0 / 0 / 2
Регистрация: 31.12.2014
Сообщений: 226
10.03.2020, 14:14  [ТС]
korvin_, нет реализовал через форму удаление через метод DELETE

Добавлено через 27 минут
Цитата Сообщение от n0kk Посмотреть сообщение
через метод DELETE
вернее POST
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
10.03.2020, 19:32
n0kk, почему не через DELETE?
0
0 / 0 / 2
Регистрация: 31.12.2014
Сообщений: 226
14.03.2020, 02:49  [ТС]
korvin_, не он почему-то не работает, я спросил кто то же сталкивался с такой проблей объяснили что он в шаблоне не работает, если только писать что то подобное
HTML5
1
2
3
<form method="post" action="/handler/{{id}}?_method=DELETE>
<input type="hidden" name="_method" value="DELETE">
</form>
Jabbson,
Добавлено через 22 минуты
Еще вопрос назрел, решил Beego поработать с CRUD операциями, все реализовал но с delete запарился, все так же делаю но запись не удаляется, вообщем пишу так
сам роут
Go
1
2
3
4
beego.Router("/delete/:id([0-9]+)", &controllers.BlogsController{
        Controller: beego.Controller{},
        Db:         db,
    }, "POST:DeletePost")
контроллер
Go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//DeletePost -
func (c *BlogsController) DeletePost() {
    id := c.Ctx.Request.URL.Query().Get("id")
    if len(id) == 0 {
        log.Print("empty id")
        return
    }
 
    err := deletePost(c.Db, id)
    if err != nil {
        return
    }
    c.Redirect("/", 302)
}
 
//deletePost - удаление поста
func deletePost(db *sql.DB, id string) error {
    res, err := db.Exec("DELETE FROM `gb_blog`.`blog_lists` WHERE id = ?", id)
    if err != nil {
        return err
    }
 
    affect, err := res.RowsAffected()
    if err != nil {
        return err
    }
 
    fmt.Println("Delete:", affect)
    return err
}
форма шаблона tpl
HTML5
1
2
3
<form method="POST" action="/delete?id={{.ID}}">
            <button type="submit" class="btn btn-danger">Delete</button>
        </form>
Но так не выходит пишет ERR_CONNECTION_REFUSED Не удается получить доступ к сайту
beego наверное как то по другому роутит ни как gorilla
В чем тут дело?

Добавлено через 2 часа 48 минут
Все, разобрался нужно писать

Go
1
beego.Router("/delete/:id"...
и
Go
1
action="/delete/{{.Post.ID}}"
и id вытаскивать
Go
1
id := c.Ctx.Input.Param(":id")
0
 Аватар для farex_
26 / 26 / 3
Регистрация: 19.11.2010
Сообщений: 242
15.03.2020, 15:10
Цитата Сообщение от n0kk Посмотреть сообщение
Удаление по id из бд
одному мне кажется что тут очень не корректный вопрос и тема вопроса?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.03.2020, 15:10
Помогаю со студенческими работами здесь

Здесь есть удаление столбца, как добавить удаление строки
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { int n; do {cout &lt;&lt; &quot;Razmer massiva: &quot;; cin &gt;&gt; n;...

Удаление загрузочной записи о Windows8.1 и удаление самой Windows 8.1 при наличии двух ОС
На ноутбуке на разделе C Windows XP ,установил Windows 8.1 на логический раздел E.Теперь хочу удалить 8.1 и установить туда 7.В БИОСе...

Описать класс «множество» (добавление и удаление элемента, пересечение, объединение и удаление множеств )
Описать класс «множество», позволяющий выполнять основные операции – добавление и удаление элемента, пересечение, объединение и удаление...

Удаление элементов массива кратных своим порядковым номерам и удаление их путем сдвига вперед
Ребята, всем привет. Дистанционная практика (связи с короновирусом) дает о себе знать. Ответ на вопрос заданный учителю приходиться ждать...

Как закрыть доступ на удаление файлов и автоматизировать их удаление через определенный промежуток времени?
Добрый день, жители форума. Есть следующая проблема: Имеется компьютер с виндовс хр, на один из дисков пишется видео с камер видео...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru