Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #código está errado mas layout está ok
- import tkinter as tk
- from tkinter import ttk
- from tkinter import messagebox
- def adicionar_campo():
- global num_campos
- num_campos += 1
- # Label campo
- label_campo = ttk.Label(frame_campos, text=f'Campo {num_campos}:')
- label_campo.grid(row=num_campos, column=0, pady=5)
- # Campo texto
- campo_texto = ttk.Entry(frame_campos)
- campo_texto.grid(row=num_campos, column=1, pady=5)
- campos_texto.append(campo_texto)
- # Combobox tipo de dado
- tipo_var = tk.StringVar()
- tipo_combobox = ttk.Combobox(frame_campos, textvariable=tipo_var, values=tipos_dados)
- tipo_combobox.grid(row=num_campos, column=2, pady=5)
- tipo_vars.append(tipo_var)
- def gerar_crud():
- nome_tabela = campo_tabela.get()
- campos = zip([campo.get() for campo in campos_texto], [tipo.get() for tipo in tipo_vars])
- # Gerar arquivo cadastrar_nome_da_tabela.php
- nome_arquivo_cadastrar = f"cadastrar_{nome_tabela}.php"
- with open(nome_arquivo_cadastrar, 'w') as cadastrar_file:
- cadastrar_file.write('<?php\n')
- cadastrar_file.write('include "dbconfig.php";\n')
- cadastrar_file.write(f'// Verificar se o formulário foi enviado\n')
- cadastrar_file.write(f'if ($_SERVER["REQUEST_METHOD"] == "POST") {{\n')
- cadastrar_file.write(f' // Recuperar dados do formulário\n')
- for campo, _ in campos:
- cadastrar_file.write(f' ${campo} = $_POST["{campo}"];\n')
- cadastrar_file.write(f' // Inserir dados no banco de dados\n')
- cadastrar_file.write(f' $sql = "INSERT INTO {nome_tabela} (')
- cadastrar_file.write(', '.join([campo for campo, _ in campos]))
- cadastrar_file.write(f') VALUES (')
- cadastrar_file.write(', '.join([f'\'${campo}\'' for campo, _ in campos]))
- cadastrar_file.write(')";\n')
- cadastrar_file.write(f' if (mysqli_query($con, $sql)) {{\n')
- cadastrar_file.write(f' echo "Registro cadastrado com sucesso.";\n')
- cadastrar_file.write(f' }} else {{\n')
- cadastrar_file.write(f' echo "Erro ao cadastrar o registro: " . mysqli_error($con);\n')
- cadastrar_file.write(f' }}\n')
- cadastrar_file.write(f'}}\n')
- cadastrar_file.write('?>\n')
- # Gerar arquivo editar_nome_da_tabela.php
- nome_arquivo_editar = f"editar_{nome_tabela}.php"
- with open(nome_arquivo_editar, 'w') as editar_file:
- editar_file.write('<?php\n')
- editar_file.write('include "dbconfig.php";\n')
- editar_file.write(f'// Verificar se o formulário foi enviado\n')
- editar_file.write(f'if ($_SERVER["REQUEST_METHOD"] == "POST") {{\n')
- editar_file.write(f' // Recuperar dados do formulário\n')
- for campo, _ in campos:
- editar_file.write(f' ${campo} = $_POST["{campo}"];\n')
- editar_file.write(f' // Atualizar dados no banco de dados\n')
- editar_file.write(f' $sql = "UPDATE {nome_tabela} SET ')
- editar_file.write(', '.join([f'{campo}=\'${campo}\'' for campo, _ in campos]))
- editar_file.write(f' WHERE id=$id";\n')
- editar_file.write(f' if (mysqli_query($con, $sql)) {{\n')
- editar_file.write(f' echo "Registro atualizado com sucesso.";\n')
- editar_file.write(f' }} else {{\n')
- editar_file.write(f' echo "Erro ao atualizar o registro: " . mysqli_error($con);\n')
- editar_file.write(f' }}\n')
- editar_file.write(f'}} else {{\n')
- editar_file.write(f' // Recuperar ID do registro\n')
- editar_file.write(f' $id = $_GET["id"];\n')
- editar_file.write(f' // Consultar registro no banco de dados\n')
- editar_file.write(f' $sql = "SELECT * FROM {nome_tabela} WHERE id=$id";\n')
- editar_file.write(f' $result = mysqli_query($con, $sql);\n')
- editar_file.write(f' $row = mysqli_fetch_array($result);\n')
- editar_file.write(f'}}\n')
- editar_file.write('?>\n')
- editar_file.write('<!DOCTYPE html>\n')
- editar_file.write('<html>\n')
- editar_file.write('<body>\n')
- editar_file.write(' <form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">\n')
- for campo, tipo in campos:
- editar_file.write(f' <label for="{campo}">{campo}:</label><br>\n')
- if tipo == 'Text':
- editar_file.write(f' <input type="text" name="{campo}" value="<?php echo $row["{campo}"]; ?>"><br><br>\n')
- elif tipo == 'Number':
- editar_file.write(f' <input type="number" name="{campo}" value="<?php echo $row["{campo}"]; ?>"><br><br>\n')
- elif tipo == 'Email':
- editar_file.write(f' <input type="email" name="{campo}" value="<?php echo $row["{campo}"]; ?>"><br><br>\n')
- editar_file.write(' <input type="submit" value="Atualizar">\n')
- editar_file.write(' </form>\n')
- editar_file.write('</body>\n')
- editar_file.write('</html>\n')
- # Gerar arquivo visualizar_nome_da_tabela.php
- nome_arquivo_visualizar = f"visualizar_{nome_tabela}.php"
- with open(nome_arquivo_visualizar, 'w') as visualizar_file:
- visualizar_file.write('<?php\n')
- visualizar_file.write('include "dbconfig.php";\n')
- visualizar_file.write(f'// Consultar registros no banco de dados\n')
- visualizar_file.write(f'$sql = "SELECT * FROM {nome_tabela}";\n')
- visualizar_file.write(f'$result = mysqli_query($con, $sql);\n')
- visualizar_file.write('?>\n')
- visualizar_file.write('<!DOCTYPE html>\n')
- visualizar_file.write('<html>\n')
- visualizar_file.write('<body>\n')
- visualizar_file.write(' <table>\n')
- visualizar_file.write(' <tr>\n')
- for campo, _ in campos:
- visualizar_file.write(f' <th>{campo}</th>\n')
- visualizar_file.write(' </tr>\n')
- visualizar_file.write('<?php while ($row = mysqli_fetch_array($result)) { ?>\n')
- visualizar_file.write(' <tr>\n')
- for campo, _ in campos:
- visualizar_file.write(f' <td><?php echo $row["{campo}"]; ?></td>\n')
- visualizar_file.write(' </tr>\n')
- visualizar_file.write('<?php } ?>\n')
- visualizar_file.write(' </table>\n')
- visualizar_file.write('</body>\n')
- visualizar_file.write('</html>\n')
- messagebox.showinfo("Sucesso", "CRUD gerado com sucesso!")
- # Configuração da janela principal
- root = tk.Tk()
- root.title("Gerador CRUD")
- root.geometry("400x300")
- # Variáveis globais
- num_campos = 0
- campos_texto = []
- tipo_vars = []
- tipos_dados = ['Text', 'Number', 'Email']
- # Frame para os campos
- frame_campos = ttk.Frame(root)
- frame_campos.pack(pady=10)
- # Campo Tabela
- label_tabela = ttk.Label(frame_campos, text="Nome da Tabela:")
- label_tabela.grid(row=0, column=0, pady=5)
- campo_tabela = ttk.Entry(frame_campos)
- campo_tabela.grid(row=0, column=1, pady=5)
- # Botões
- botao_adicionar = ttk.Button(root, text="Adicionar Campo", command=adicionar_campo)
- botao_adicionar.pack(pady=5)
- botao_gerar = ttk.Button(root, text="Gerar CRUD", command=gerar_crud)
- botao_gerar.pack(pady=5)
- # Loop principal da janela
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement