#python #mysql #tkinter
#python #mysql #tkinter
Вопрос:
Я создал интерфейс, в котором они заполняют ряд форм и сохраняются в базе данных, я сделал кнопку для обновления данных на случай, если пользователь допустил ошибку, и он может ее обновить, но при обновлении он обновляет всех зарегистрированных пользователей, а не только того, которого я зарегистрировал.я выбираю, это должна быть ошибка в запросе, но я новичок в этом
идея состоит в том, чтобы обновить отдельные данные из интерфейса
id_postulante — это автоматически увеличивающееся поле, и оно не является переменной, как остальные поля
def actualizar(self):
if self.nombre_var.get()=="" or self.apellido_var.get()=="" or self.cedula_var.get()=="" or self.fdn_var.get()=="" or self.genero_var.get()=="" or self.telefono_var.get()=="" or self.correo_var.get()=="" or self.cargo_aspira_var.get()=="" or self.estado_civil_var.get()=="":
messagebox.showerror("Error","Seleccion el registro que desea actualizar!!!")
else:
con=pymysql.connect(host="localhost", user="root",password="", database="postulantebd")
cur = con.cursor()
cur.execute("update postulantes set nombre=%s, apellido=%s, cedula=%s, fdn=%s, genero=%s, telefono=%s, correo=%s, estadoCivil=%s, cargoAspira=%s, direccion=%s,imagen=%s, descripcion=%s,indicador=%s where id_postulante",(
self.nombre_var.get(),
self.apellido_var.get(),
self.cedula_var.get(),
self.fdn_var.get(),
self.genero_var.get(),
self.telefono_var.get(),
self.correo_var.get(),
self.estado_civil_var.get(),
self.cargo_aspira_var.get(),
self.txt_direccion.get('1.0', 'end-1c'),
self.blobImagen,
self.descripcion_var.get('1.0', 'end-1c'),
self.indicador_var.get('1.0', 'end-1c')
))
con.commit()
self.foto.grid_remove()
self.fetch_all()
self.limpiar()
con.close()
messagebox.showinfo("Exelente","Se actualizó correctamente el registro")
Комментарии:
1. В чем ошибка?
2. Ошибка не появляется, поскольку она работает, но не так, как должна, вместо обновления только полей одного пользователя, она обновляет поля всех пользователей, я не знаю почему
3. Предложение WHERE должно быть
WHERE id_postulante = %s
, а затем укажите нужный идентификатор.