Ir para conteúdo
Fórum Script Brasil

Procarrera

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre Procarrera

Procarrera's Achievements

0

Reputação

  1. Olá Pessoal! 1) Estou precisando fazer duas listas, vou chamar uma lista de LISTA_OBJETOS e a outra de LISTA_CASA. Na LISTA_OBJETOS estarão todos os OBJETOS (sofá, cadeira, tv, ...) e na LISTA_CASA estarão listadas todas CASAS (Casa 1, Casa 2 , Casa 3, ...). Para essa primeira etapa, pensei em criar um DB armazenando as duas listas em tabelas distintas, uma chamada TABELA_OBJETOS e a outra TABELA_CASAS. - Na TABELA_OBJETOS terá apenas uma coluna com o nome dos OBJETOS e, claro, cada um ocupando uma linha na tabela. - Já na TABELA_CASAS terão 3 colunas: Nome da Casa; Lista de Objetos; e Valor de CADA OBJETO. Por exemplo, na Casa 1, tenho os OBJETOS SOFÁ, CADEIRA e TV. Preciso dizer que, para a Casa 1, o objeto Sofá tem VALOR = R$200,00; CADEIRA = R$50,00 e TV = R$1.000,00. Na Casa 2, entretanto, os mesmos objetos podem receber valores diferentes (ex: Sofá = R$100,00 / Cadeira = R$20,00 / Tv = R$300,00). 2) O próximo passo seria criar um sistema de BUSCA, onde se possa inserir os OBJETOS desejados, e o sistema listará as Casas que possuam ao menos um destes Objetos, ordenando o resultado pelo somatório dos VALORES dos objetos pesquisados. POR ENQUANTO PEÇO AJUDA PARA CONCLUIR A ETAPA 1...... Estou usando o Python 2.7 e o MySQL 5.5.24(através do WAMPSERVER no localhost) Instalei o MySQL-python-1.2.3.win32-py2.7 para usar o Módulo MySQLdb Tentei concluir um tutorial básico para inserir uma linha na tabela, mas não estou tendo sucesso, segue o código que estou rodando. # Importa o modulo MySQL import MySQLdb # Pega a entrada do usuario obj_nome = raw_input("Nome do Objeto:") # Conecta Banco de Dados db = MySQLdb.connect(host="localhost", user="root", passwd="", db="hometeste") # Cria um cursor cursor = db.cursor() # Executa o SQL cursor.execute("INSERT INTO tabela_objetos VALUES ('%s');", (obj_nome)) cursor.close() db.close() A mensagem de erro: >>> Nome do Objeto: cadeira Traceback (most recent call last): File "C:/Python27/Meus Projetos/Tabela_Casas_MySQL.py", line 19, in <module> (obj_nome)) File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 174, in execute self.errorhandler(self, exc, value) File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 36, in defaulterrorhandler raise errorclass, errorvalue ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'cadeira'')' at line 1") OBS: Aparentemente o módulo foi bem instalado, pois obtive sucesso com o import MySQLdb direto no IDLE e também com script para retornar a versão do MySQL. Desde já agradeço a atenção de todos!
  2. Olá Pessoal! Estou iniciando em Python e este é meu primeiro post aqui.... não tenho muita experiência com Python e nem com MySQL... Há um tempo atrás dei a sorte, ou destino, de estudar um pouco de C, o que me deu base para encarar o estudo das diversas lingaugens por ai....... MySQL eu não conhecia muito e estou começando a mexer agora, não necessito nada muito complexo dela (eu acho), então não estou me preocupando muito com detalhes. Python pelo pouco que li, e aprendi, não está me parecendo muito dificil, estou gostando bastante da linguagem e digo, com certeza, que saber um pouco de C me deu uma excelente base para python. Sem mais delongas, vou expor meu problema: 1) Estou precisando fazer duas listas, vou chamar uma lista de LISTA_OBJETOS e a outra de LISTA_CASA. Na LISTA_OBJETOS estarão todos os OBJETOS (sofá, cadeira, tv, ...) e na LISTA_CASA estarão listadas todas CASAS (Casa 1, Casa 2 , Casa 3, ...). Para essa primeira etapa, pensei em criar um DB armazenando as duas listas em tabelas distintas, uma chamada TABELA_OBJETOS e a outra TABELA_CASAS. - Na TABELA_OBJETOS terá apenas uma coluna com o nome dos OBJETOS e, claro, cada um ocupando uma linha na tabela. - Já na TABELA_CASAS terão 3 colunas: Nome da Casa; Lista de Objetos; e Valor de CADA OBJETO. Por exemplo, na Casa 1, tenho os OBJETOS SOFÁ, CADEIRA e TV. Preciso dizer que, para a Casa 1, o objeto Sofá tem VALOR = R$200,00; CADEIRA = R$50,00 e TV = R$1.000,00. Na Casa 2, entretanto, os mesmos objetos podem receber valores diferentes (ex: Sofá = R$100,00 / Cadeira = R$20,00 / Tv = R$300,00). 2) O próximo passo seria criar um sistema de BUSCA, onde se possa inserir os OBJETOS desejados, e o sistema listará as Casas que possuam ao menos um destes Objetos, ordenando o resultado pelo somatório dos VALORES dos objetos pesquisados. POR ENQUANTO PEÇO AJUDA PARA CONCLUIR A ETAPA 1...... Estou usando o Python 2.7 e o MySQL 5.5.24(através do WAMPSERVER no localhost) Instalei o MySQL-python-1.2.3.win32-py2.7 para usar o Módulo MySQLdb Tentei concluir um tutorial básico para inserir uma linha na tabela, mas não estou tendo sucesso, segue o código que estou rodando. # Importa o modulo MySQL import MySQLdb # Pega a entrada do usuario obj_nome = raw_input("Nome do Objeto:") # Conecta Banco de Dados db = MySQLdb.connect(host="localhost", user="root", passwd="", db="hometeste") # Cria um cursor cursor = db.cursor() # Executa o SQL cursor.execute("INSERT INTO tabela_objetos VALUES ('%s');", (obj_nome)) cursor.close() db.close() A mensagem de erro: >>> Nome do Objeto: cadeira Traceback (most recent call last): File "C:/Python27/Meus Projetos/Tabela_Casas_MySQL.py", line 19, in <module> (obj_nome)) File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 174, in execute self.errorhandler(self, exc, value) File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 36, in defaulterrorhandler raise errorclass, errorvalue ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'cadeira'')' at line 1") OBS: Aparentemente o módulo foi bem instalado, pois obtive sucesso com o import MySQLdb direto no IDLE e também com script para retornar a versão do MySQL. Desde já agradeço a atenção de todos! ;)
×
×
  • Criar Novo...