Python - Consulta a una BD con Python

 
Vista:
Imágen de perfil de Ciro

Consulta a una BD con Python

Publicado por Ciro (4 intervenciones) el 24/07/2021 23:44:59
Saludos a todos, verán, tengo una GUI en python que se encarga de buscar datos en una BD en sqlite. puedo hacer consultas sencillas pero ahora necesito mandar a llamar a todos los "ID" iguales y asignarles un mismo valor.

Estos son mis valores en la BD:
Captura-de-Pantalla-2021-07-24-a-las-4.37.52-p.m

En el programa necesito que Por Ejemplo: si en mi interfaz gráfica agrego un "hola" y selecciono "ID = 1" se imprima "Hola". en todos los países que tengan el mismo "ID"

Este es un ejemplo de consulta en mi programa donde (Combo1.get()) es un combobox donde elijo el "ID"
1
2
3
conn = sqlite3.connect('FutDB.db')
cur = conn.cursor()
query = cur.execute("SELECT * FROM Equipos where Zona=?",(Combo1.get(),))

Gracias a todos y espero haberme explicado bien!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Francisco Javier
Val: 249
Ha aumentado su posición en 29 puestos en Python (en relación al último mes)
Gráfica de Python

Consulta a una BD con Python

Publicado por Francisco Javier (122 intervenciones) el 25/07/2021 01:38:45
Buenas , lo que necesitas es : hacer una llamada a la BBDD para solicitar todos los id con el mismo número al que llamas, para que luego al introducir 'hola' en un entry de la GUI se imprima al lado de cada uno de los id con el mismo número?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Ciro

Consulta a una BD con Python

Publicado por Ciro (4 intervenciones) el 25/07/2021 02:09:06
Hola Francisco, Es exactamente lo que comentas lo que busco, Como dato estoy usando un cur.fetchall() para hacer la llamada.

Y en la parte de la consulta donde dice "where Zona=?" es "where ID=?" ahí tuve un pequeño error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Consulta a una BD con Python

Publicado por tincopasan (888 intervenciones) el 25/07/2021 02:55:40
si lo que buscas es la consulta, probá con:
1
query = cur.execute(f"SELECT * FROM Equipos WHERE id LIKE {Combo1.get()})
si es sobre el combobox, que es lo que supongo que estás usando, porque nunca decís en que entorno, es otra cosa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Ciro

Consulta a una BD con Python

Publicado por Ciro (4 intervenciones) el 25/07/2021 03:13:09
Lo que necesito es seleccionar in "ID" en el combobox, y con eso aplicar el cambio para todos los "ID" iguales. para eso necesito la consulta que no se como hacerla.

La consulta que puse de ejemplo está dentro de una función mayor la cual es ejecutada por un botón, todo esta hecho en python y Tkinter.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Consulta a una BD con Python

Publicado por tincopasan (888 intervenciones) el 25/07/2021 04:32:38
evidentemente tu pregunta no corresponde con las expresiones que usas, la consulta sobre como obtener las filas de la tabla ya te dije como se hace, así que poné un código mínimo verificable para corregirlo o mejorarlo, en mi caso no voy a hacer el código completo solo lo que no esté para funcionar bien.
Si te falta como modificar las filas de la tabla, o que al selecionar el elemento en el combobox se ejecute la consulta o lo que refleja el combobox cambie al presionar un botón, etc. tu planteo en el aire es muy poco claro para algo tan simple.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Ciro

Consulta a una BD con Python

Publicado por Ciro (4 intervenciones) el 25/07/2021 05:27:40
Eh tardado de aplicar la consulta que has puesto pero no me resultó. Este es el código de la funcion:

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
def Datos1():
      Combo1_info = Combo1.get()
      Entry1_info = En1.get()
      Entry2_info = En2.get()
      Entry3_info = En3.get()
 
      #####---En esta consulta se muestra lo que aparecerá en el combobox--#####
      conn = sqlite3.connect('FutDB.db')
      cur = conn.cursor()
      query = cur.execute("SELECT * FROM Equipos where ID=?",(Combo1.get(),))
      data = []
      resultado= cur.fetchall()
 
 
      ID = resultado[0][0]
      Equipo = resultado[0][1]
      Pais = resultado[0][2]
      Zona = resultado[0][3]
      Titulos_loc = resultado[0][4]
      Titulos_int = resultado[0][5]
      cur.close()
      conn.close()
 
      data = {"ID":[ID],
              "Equipo":[Equipo],
              "Pais":[Pais],
              "Zona":[Combo1_info],
              "Titulos_loc":[Titulos_loc],
              "Titulos_int":[Titulos_int],
              "ID_Contestado":[]}  #<---- En esta parte es donde debería aparecer lo que se
                                              #contestó en el entry y verse en todos los ID iguales
 
      archivo = pd.DataFrame.from_dict(data, orient ='index')
      archivo = archivo.transpose()
      archivo.to_csv("DATOS.csv", mode="a",index=None, header=not os.path.isfile("Data1.csv"))

Lo que hace la función es crear un archivo CSV con todos los datos del "ID" seleccionado.
Lo que no he podido hacer es contestar un entry y que lo que se haya contestado se agregue en una columna para todos los "ID" iguales.

Captura-de-Pantalla-2021-07-24-a-las-10.25.32-p.m
Así sale el resultado en el CSV. donde solo me sale un solo ID no los demás.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar