Pesquisar na Comunidade
Mostrando resultados para as tags ''poo''.
Encontrado 7 registros
-
Preciso de Ajuda. Tenho nos meus projetos a conexão desta forma: $conexao = new PDO('mysql:host=localhost;dbname=meubanco','meuuser','minhasenha'); Funciona Normal. Porem peguei um projeto que usa a conexão dentro de uma classe da seguinte forma: Classe: dbconn.php <?php class dbconn { public $dblocal; public function __construct() { } public function initDBO() { $this->dblocal = new PDO("mysql:host=localhost;dbname=meubanco;charset=latin1","meuuser","minhasenha",array(PDO::ATTR_PERSISTENT => true)); $this->dblocal->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); } } ?> Também funciona. Mas a tenho uma de minhas páginas que fazia acesso ao select fazendo referencia à conexão com o banco usando a variável $conexaõ da seguinte forma: <?php if(isset($_POST['logar'])) { $usuario=trim(strip_tags($_POST['usuario'])); $senha=trim(strip_tags($_POST['senha'])); $select = "SELECT * from tab_usuarios WHERE email=:usuario AND senha=:senha"; try { $result = $conexao->prepare($select); //$conexão vem do arquivo conexao.php ---Aqui gera o erro. Qual erro? A variavel $conexão não existe. Claro. Já era de se esperar... $result->bindParam(':usuario',$usuario, PDO::PARAM_STR); $result->bindParam(':senha',$senha, PDO::PARAM_STR); $result->execute(); ... //continua ?> Meu problema: No arquivo de Conexao com o banco agora está dentro de uma classe e não usa mais a variável $conexão. Em seu lugar está a psedo-variável $this. Sei que não basta apenas trocar a variável $conexao pela $this... O que fazer? devo mexer só nesta linha? tem mais coisa, tipo instanciar .... Não sei o que devo alterar ra isso continuar funcionando. Estou estudando aqui PDO | POO, lendo muito, vendo videos ..., mas preciso de ajuda com isso... $result = $conexao->prepare($select); Grata.
-
Olá pessoal! Acredito que alguns daqui do grupo conhece o sistema de Ordens de Serviço MAPOS, que foi desenvolvido em CodeIgniter. Estou fazendo uma alteração nele, para que quando o usuário for receber uma parte de um pagamento do cliente, o restante apareça no cadastro de cliente. Por exemplo: O Cliente X tinha um débito de R$ 500,00. Más no dia Y ele pagou R$ 100,00, restando então R$ 400,00. No Models do Financeiro, fiz essa alteração abaixo na linha do "function edit": <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Financeiro_model extends CI_Model { function __construct() { parent::__construct(); } function get($table,$fields,$where='',$perpage=0,$start=0,$one=false,$array='array'){ $this->db->select($fields); $this->db->from($table); $this->db->order_by('data_vencimento', 'asc'); $this->db->limit($perpage,$start); if($where){ $this->db->where($where); } $query = $this->db->get(); $result = !$one ? $query->result() : $query->row(); return $result; } function getById($id){ $this->db->where('idClientes',$id); $this->db->limit(1); return $this->db->get('clientes')->row(); } function add($table,$data){ $this->db->insert($table, $data); if ($this->db->affected_rows() == '1') { return TRUE; } return FALSE; } function edit($table,$data,$fieldID,$ID){ $this->db->select('clientes.saldoDevedor, lancamentos.clientes_id, lancamentos.valor, lancamentos.idLancamentos'); $this->db->from('lancamentos,clientes'); $this->db->where($fieldID,$ID); $this->db->update($table, $data); if ($this->db->affected_rows() >= 0) { return TRUE; } return FALSE; } function delete($table,$fieldID,$ID){ $this->db->where($fieldID,$ID); $this->db->delete($table); if ($this->db->affected_rows() == '1') { return TRUE; } return FALSE; } function count($table) { return $this->db->count_all($table); } } E no Views do lançamento criei esse campo, dentro do Modal de Editar Lançamento: <div class="span4" style="margin-left: 0"> <label for="valor-pagar">Valor a Receber/Pagar</label> <input type="text" name="tipoPagar" value="" /> <input type="hidden" id="Pagar" name="idPagar" value="" /> </div> E no Controlers na função Editar, alterei com essas informações: Eu so inseri esses comandos que vocês odem olhar no codigo abaixo: public function editar(){ if(!$this->permission-> checkPermission($this->session->userdata('permissao'),'eLancamento')){ $this->session->set_flashdata('error','Você não tem permissão para editar lançamentos.'); redirect(base_url()); } $this->load->library('form_validation'); $this->data['custom_error'] = ''; $urlAtual = $this->input->post('urlAtual'); $this->form_validation->set_rules('descricao', '', 'trim|required|xss_clean'); $this->form_validation->set_rules('fornecedor', '', 'trim|required|xss_clean'); $this->form_validation->set_rules('valor', '', 'trim|required|xss_clean'); $this->form_validation->set_rules('vencimento', '', 'trim|required|xss_clean'); $this->form_validation->set_rules('pagamento', '', 'trim|xss_clean'); if ($this->form_validation->run() == false) { $this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' . validation_errors() . '</div>' : false); } else { $vencimento = $this->input->post('vencimento'); $pagamento = $this->input->post('pagamento'); try { $vencimento = explode('/', $vencimento); $vencimento = $vencimento[2].'-'.$vencimento[1].'-'.$vencimento[0]; $pagamento = explode('/', $pagamento); $pagamento = $pagamento[2].'-'.$pagamento[1].'-'.$pagamento[0]; } catch (Exception $e) { $vencimento = date('Y/m/d'); } $capturaValorTotal = $this->input->post('valor'); $capturaValorPagar = $this->input->post('valor-pagar'); $valorDevido = $capturaValorTotal - $capturaValorPagar; $inserindoBanco = "INSERT INTO `clientes` set `saldoDevedor`='".$valorDevido."'"; $executandoQuery = mysql_query($inserindoBanco); $data = array( 'descricao' => $this->input->post('descricao'), 'valor' => $this->input->post('valor'), 'valor-pagar' => $this->input->post('valor-pagar'), 'data_vencimento' => $vencimento, 'data_pagamento' => $pagamento, 'baixado' => $this->input->post('pago'), 'cliente_fornecedor' => $this->input->post('fornecedor'), 'forma_pgto' => $this->input->post('formaPgto'), 'numCheque' => $this->input->post('numCheque'), 'numCartao' => $this->input->post('numCartao'), 'valCartao' => $this->input->post('valCartao'), 'tipo' => $this->input->post('tipo') ); if ($this->financeiro_model->edit('lancamentos',$data,'idLancamentos',$this->input->post('id')) == TRUE) { $this->session->set_flashdata('success','lançamento editado com sucesso!'); redirect($urlAtual); } else { $this->session->set_flashdata('error','Ocorreu um erro ao tentar editar lançamento!'); redirect($urlAtual); } } $this->session->set_flashdata('error','Ocorreu um erro ao tentar editar lançamento.'); redirect($urlAtual); $data = array( 'descricao' => $this->input->post('descricao'), 'valor' => $this->input->post('valor'), 'data_vencimento' => $this->input->post('vencimento'), 'data_pagamento' => $this->input->post('pagamento'), 'baixado' => $this->input->post('pago'), 'cliente_fornecedor' => set_value('fornecedor'), 'forma_pgto' => $this->input->post('formaPgto'), 'tipo' => $this->input->post('tipo') ); print_r($data); } public function editar(){ if(!$this->permission->checkPermission($this->session->userdata('permissao'),'eLancamento')){ $this->session->set_flashdata('error','Você não tem permissão para editar lançamentos.'); redirect(base_url()); } $this->load->library('form_validation'); $this->data['custom_error'] = ''; $urlAtual = $this->input->post('urlAtual'); $this->form_validation->set_rules('descricao', '', 'trim|required|xss_clean'); $this->form_validation->set_rules('fornecedor', '', 'trim|required|xss_clean'); $this->form_validation->set_rules('valor', '', 'trim|required|xss_clean'); $this->form_validation->set_rules('vencimento', '', 'trim|required|xss_clean'); $this->form_validation->set_rules('pagamento', '', 'trim|xss_clean'); if ($this->form_validation->run() == false) { $this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' . validation_errors() . '</div>' : false); } else { $vencimento = $this->input->post('vencimento'); $pagamento = $this->input->post('pagamento'); try { $vencimento = explode('/', $vencimento); $vencimento = $vencimento[2].'-'.$vencimento[1].'-'.$vencimento[0]; $pagamento = explode('/', $pagamento); $pagamento = $pagamento[2].'-'.$pagamento[1].'-'.$pagamento[0]; } catch (Exception $e) { $vencimento = date('Y/m/d'); } $capturaValorTotal = $this->input->post('valor'); $capturaValorPagar = $this->input->post('valor-pagar'); $valorDevido = $capturaValorTotal - $capturaValorPagar; $inserindoBanco = "INSERT INTO `clientes` set `saldoDevedor`='".$valorDevido."'"; $executandoQuery = mysql_query($inserindoBanco); $data = array( 'descricao' => $this->input->post('descricao'), 'valor' => $this->input->post('valor'), 'valor-pagar' => $this->input->post('valor-pagar'), 'data_vencimento' => $vencimento, 'data_pagamento' => $pagamento, 'baixado' => $this->input->post('pago'), 'cliente_fornecedor' => $this->input->post('fornecedor'), 'forma_pgto' => $this->input->post('formaPgto'), 'numCheque' => $this->input->post('numCheque'), 'numCartao' => $this->input->post('numCartao'), 'valCartao' => $this->input->post('valCartao'), 'tipo' => $this->input->post('tipo') ); if ($this->financeiro_model->edit('lancamentos',$data,'idLancamentos',$this->input->post('id')) == TRUE) { $this->session->set_flashdata('success','lançamento editado com sucesso!'); redirect($urlAtual); } else { $this->session->set_flashdata('error','Ocorreu um erro ao tentar editar lançamento!'); redirect($urlAtual); } } $this->session->set_flashdata('error','Ocorreu um erro ao tentar editar lançamento.'); redirect($urlAtual); $data = array( 'descricao' => $this->input->post('descricao'), 'valor' => $this->input->post('valor'), 'data_vencimento' => $this->input->post('vencimento'), 'data_pagamento' => $this->input->post('pagamento'), 'baixado' => $this->input->post('pago'), 'cliente_fornecedor' => set_value('fornecedor'), 'forma_pgto' => $this->input->post('formaPgto'), 'tipo' => $this->input->post('tipo') ); print_r($data); } O que eu não estou entendendo é onde esta ou onde estão os meus erros, pois não grava nada no Banco de Dados, sendo q eu criei na tablea clienes o campo saldoDevedor. E ainda por cima, quando faço o teste, utilizando o debito de cliente já existente, informo o valor que foi pago, e diz que foi alterando com sucesso, más na realidade nada acontece. Fico no aguardo se alguém puder me ajudar!
- 1 resposta
-
- codeigniter
- php
-
(e %d mais)
Tags:
-
Bom estou com um problema na hora de chamar um atributo em um outro arquivo, ou seja eu estou trabalhando com pacotes o primeiro pacote(arquivos diferentes) é o principal com nome de Gerenciador.py e nele tem esse código: from Tkinter import * from constantes import * from BD import * class main(): def __init__(self, principal): self.frame1 = Frame(principal) self.frame1.pack() self.BCriar = Button(self.frame1, width = 10, command = self.criar, text = 'Criar') self.BCriar.pack(side = LEFT, pady = '10px') self.BGerenciar = Button(self.frame1, width = 10, command = self.gerenciar, text = 'Gerenciar') self.BGerenciar.pack(side = LEFT, pady = '10px') self.BDeletar = Button(self.frame1, width = 10, command = self.deletar, text = 'Deletar') self.BDeletar.pack(side = LEFT, pady = '10px') self.BAjuda = Button(self.frame1, width = 10, command = self.ajuda, text = 'Ajuda') self.BAjuda.pack(side = LEFT, pady = '10px') self.BSobre = Button(self.frame1, width = 10, command = self.sobre, text = 'Sobre') self.BSobre.pack(side = LEFT, pady = '10px') def criar(self): self.BCriar.pack_forget() self.BGerenciar.pack_forget() self.BDeletar.pack_forget() self.BAjuda.pack_forget() self.BSobre.pack_forget() criarBanco() def gerenciar(self): pass def deletar(self): pass def ajuda(self): pass def sobre(self): pass principal = Tk() main(principal principal.geometry('800x600') principal.resizable(False, False) principal.title('Gerenciador De Cadastro') principal.mainloop() Quando clicar no botao criar ele entra na proxima página, que no caso é esse codigo com nome de BD.py(outro arquivo): from Tkinter import * from sqlite3 import * from constantes import * from Criacao import * class criarBanco(object): def __init__(self, principal): #frames e empacotamento de frames self.font = ('Arial', '14', 'bold') self.font1 = ('Arial', '10', 'bold') self.frame0 = Frame(principal) self.frame0.pack(pady = padyFrame0) self.frame1 = Frame(principal) self.frame1.place() self.frame1.pack() self.frame1['bg'] = bgFrame1 self.frame5 = Frame(principal) self.frame5.pack(pady = padyFrame0) self.frame2 = Frame(principal) self.frame2.place() self.frame2.pack() self.frame2['bg'] = bgFrame2 self.frameBotEnviar = Frame(principal) self.frameBotEnviar.place() self.frameBotEnviar.pack(pady = padyBotEnviar) ##Texto de Aviso de Marcado Ou no self.nomeMarcado = Label(self.frame5, text = 'Nome = No ', font = self.font1) self.nomeMarcado.pack(side = LEFT) self.corMarcado = Label(self.frame5, text = ' Cor = No ', font = self.font1) self.corMarcado.pack(side = LEFT) self.cpfMarcado = Label(self.frame5, text = ' CPF = No ', font = self.font1) self.cpfMarcado.pack(side = LEFT) self.emailMarcado = Label(self.frame5, text = ' Email = No', font = self.font1) self.emailMarcado.pack(side = LEFT) #Variaveis CheckButton self.Vnome = IntVar() self.Vcor = IntVar() self.Vcpf = IntVar() self.Vemail = IntVar() ################# self.L1 = Label(self.frame1, font = self.font, text = " Nome do Seu Banco de Dados ", bg = bgNomeDoBanco) self.L1.pack() self.LL1 = Label(self.frame1, bg = '#B5B5B5') self.LL1.pack() self.E1 = Entry(self.frame1, bd = 5, highlightcolor = '#1E90FF') self.E1.pack() self.L2 = Label(self.frame1, font = self.font, text = ' Digite a Senha do seu Banco de Dados ', bg = bgNomeDoBanco) self.L2.pack() self.E2 = Entry(self.frame1, show = '*', bd = 5, highlightcolor = '#1E90FF') self.E2.pack() self.L3 = Label(self.frame1, font = self.font, text = ' Confirme a Senha do seu Banco de Dados ', bg = bgNomeDoBanco) self.L3.pack() self.E3 = Entry(self.frame1, show = '*', bd = 5, highlightcolor = '#1E90FF') self.E3.pack() ## CheckButtons self.nome = Checkbutton(self.frame2, bg = bgCheckButton, font = self.font1, command = self.PegarValor, bd = 3, text = 'Nome', onvalue = 1, offvalue = 0, variable = self.Vnome) self.nome.pack(side = LEFT) self.cor = Checkbutton(self.frame2, bg = bgCheckButton, font = self.font1, command = self.PegarValor, bd = 3, text = 'Cor', onvalue = 1, offvalue = 0, variable = self.Vcor) self.cor.pack(side = LEFT) self.cpf = Checkbutton(self.frame2, bg = bgCheckButton, font = self.font1, command = self.PegarValor, bd = 3, text = 'CPF', onvalue = 1, offvalue = 0, variable = self.Vcpf) self.cpf.pack(side = LEFT) self.email = Checkbutton(self.frame2, bg = bgCheckButton, font = self.font1, command = self.PegarValor, bd = 3, text = 'Email', onvalue = 1, offvalue = 0, variable = self.Vemail) self.email.pack(side = LEFT) self.BotEnviar = Button(self.frameBotEnviar, command = self.enviaBanco, bg = '#CFCFCF', text = 'Enviar', font = self.font1, bd = 5) self.BotEnviar.pack() ################# def PegarValor(self): v = [0,0,0,0] if self.Vnome.get() == 1: v[0] = 1 self.nomeMarcado['text'] = 'Nome = Sim ' else: self.nomeMarcado['text'] = ' Nome = No ' if self.Vcor.get() == 1: v[1] = 1 self.corMarcado['text'] = ' Cor = Sim ' else: self.corMarcado['text'] = ' Cor = No ' if self.Vcpf.get() == 1: v[2] = 1 self.cpfMarcado['text'] = ' CPF = Sim ' else: self.cpfMarcado['text'] = ' CPF = No ' if self.Vemail.get() == 1: v[3] = 1 self.emailMarcado['text'] = ' Email = Sim ' else: self.emailMarcado['text'] = ' Email = No' def enviaBanco(self): if self.E2.get() == self.E3.get(): self.frame0.pack_forget() self.frame1.pack_forget() self.frame2.pack_forget() self.frame5.pack_forget() self.nomeMarcado.pack_forget() self.corMarcado.pack_forget() self.cpfMarcado.pack_forget() self.emailMarcado.pack_forget() self.frameBotEnviar.pack_forget() self.BotEnviar.pack_forget() self.L1.pack_forget() self.LL1.pack_forget() self.L2.pack_forget() self.L3.pack_forget() self.E1.pack_forget() self.E2.pack_forget() self.E3.pack_forget() self.nome.pack_forget() self.cor.pack_forget() self.cpf.pack_forget() self.email.pack_forget() inicioBanco(principal) else: self.E2.delete(0, END) self.E3.delete(0, END) ############### Assim que voce colocar o nome e a senha e confirmar a senha e apertar enviar ele vai para esse arquivo com nome de Criacao.py from Tkinter import * class inicioBanco(object): def __init__(self, principal): self.frame11 = Frame(principal) self.frame11.pack() self.frame22 = Frame(principal) self.frame22.pack() usuarios = Label(self.frame11, text = 'Quantas Pessoas Voce Quer Cadastrar ?') usuarios.pack() self.entUsuarios = Entry(self.frame11, bd = 5, highlightcolor = '#1E90FF') entUsuarios.pack() Benviar = Button(self.frame22, text = 'Enviar', bd = 5) Benviar.pack() ai quando vai para o arquivo acima, da o seguinte erro: Exception in Tkinter callback Traceback (most recent call last): File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1540, in __call__ return self.func(*args) File "/home/giovanni/Área de Trabalho/Python/BD.py", line 122, in enviaBanco inicioBanco(principal) NameError: global name 'principal' is not defined Eu sei que é porque o nome principla não esta definido mas eu não consigo defini-lo pois principal é a instancia de Tk() então se eu colocar: principal = Tk() principal.geometry('800x600') principal.resizable(False, False) principal.title('Gerenciador De Cadastro') principal.mainloop() Ira ficar abrindo varias janela. Então Se entenderem me ajudem preciso muito. Lembrando CADA BLOCO É UM ARQUIVO COM NOME DIFERENTER O PRIMEIRO BOLBO É Gerenciador.py O SEGUNDO É BD.py E O TERCEIRO Criacao.py
-
Ola, eu fiz 4 arquivos para um trabalho de faculdade em PHP, o projeto precisa fazer upload, listar e excluir fotos. Os códigos inicialmente foi passado pelo professor e eu tive que ir apenas remodelando e encaixando dentro do que o professor passou. Porem, apos feito tudo, ficou faltando a OO, algo que tenho muita dificuldade, o professor disse que preciso mover as regras de negocio dos scripts e jogar para a classe, Nesse ponto que preciso de ajuda e não sei como fazer. segue os codigos: //UPLOAD DE ARQUIVO <?php $error = ''; if (isset($_POST['nome']) && $_POST['nome']!='' && isset($_FILES['imagem'])) { $name = $_FILES["imagem"]["name"]; $ext = end((explode(".", $name))); # extra () to prevent notice $uploaddir = '../uploads/'; $uploadfile = $uploaddir . $_POST['nome'].'.'.$ext; if (move_uploaded_file($_FILES['imagem']['tmp_name'], $uploadfile)) { echo "Arquivo válido e enviado com sucesso.\n"; } }else { $error = "error"; } header('Location: '.'index.php?'.$error); ?> ----------------------------------------------------------------------- //excluir arquivo <?php $delete = $_GET['excluir']; unlink('../uploads/'.$delete); header('Location: '.'index.php'); ?> ----------------------------------------------------------------------- //CLASSE DIRETORIO accept classe diretorio que preciso passar para POO: <?php interface DiretorioInterface { public function recuperarListaArquivos();//{}chaves no lugar do ; public function excluirArquivo($nome_arquivo);//{} public function cadastrarArquivo($arquivo);//{} } class Diretorio implements DiretorioInterface { } ?> --------------------------------------------------------------------------- //index <?php // utilizar este arquivo ao invés de index.html // pois com o PHP vai ser possível tornar a lista de arquivos // uma lista dinâmica, ou seja, com base no que existe na pasta // e é preciso formatar o formulário para que esteja // enviando seus dados de forma correta para o script cadastrar_arquivo.php // ** lembre-se do método, do action e do enctype ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <title>Mapa Unicesumar</title> <!-- Bootstrap Core CSS --> <link href="../vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet"> <!-- MetisMenu CSS --> <link href="../vendor/metisMenu/metisMenu.min.css" rel="stylesheet"> <!-- Custom CSS --> <link href="../dist/css/sb-admin-2.css" rel="stylesheet"> <!-- Custom Fonts --> <link href="../vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css"> <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <div id="wrapper"> <!-- Navigation --> <nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0"> <div class="navbar-header"> <a class="navbar-brand" href="index.html">MAPA - EAD UniCesumar</a> </div> <!-- /.navbar-header --> </nav> <div id="page-wrapper" style="margin-left:0px"> <div class="row"> <div class="col-md-6 col-md-offset-3"> <h1 class="page-header">Leitura de Pasta e Envio de Arquivos</h1> </div> <!-- /.col-lg-12 --> </div> <!-- /.row --> <div class="row"> <div class="col-md-6 col-md-offset-3"> <div class="panel panel-default"> <div class="panel-heading" > Digite o nome do arquivo e anexe o documento... </div> <?php if (isset($_GET['error'])) {?> <div class="panel-heading" style="background-color: #cccccc;"> Preencha o formulário corretamente! </div> <?php }?> <div class="panel-body"> <div class="row"> <div class="col-lg-12"> <form role="form" name="upload" action="cadastrar_arquivo.php" method="post" enctype="multipart/form-data"> <div class="form-group"> <label>Nome do Arquivo</label> <input name="nome" class="form-control"> <p class="help-block">Digite o nome que o arquivo será salvo...</p> </div> <div class="form-group"> <label>Anexar Arquivo</label> <input name="imagem" type="file"> </div> <button type="submit" class="btn btn-active">Enviar Arquivo</button> </form> </div> <!-- /.col-lg-12 (nested) --> </div> <!-- /.row (nested) --> </div> <!-- /.panel-body --> </div> <!-- /.panel --> </div> <!-- /.col-lg-12 --> </div> <!-- /.row --> <div class="row"> <div class="col-md-6 col-md-offset-3"> <div class="panel panel-default"> <div class="panel-heading"> Relatório de Arquivos </div> <!-- /.panel-heading --> <div class="panel-body"> <div class="table-responsive"> <table class="table table-striped table-bordered table-hover"> <thead> <tr> <th>#</th> <th>Arquivo</th> <th>Excluir?</th> </tr> </thead> <tbody> <?php $dir = '../uploads'; $files1 = scandir($dir); $i=0; foreach ($files1 as $file){ if(strlen($file)>3) { $i++; ?> <?php echo $file ?> <tr> <td><?php echo $i ?></td> <td><?php echo $file ?><img src="<?php echo $dir.'/'.$file ?>" title="<?php echo $file ?>" style="width: 15%;"/></td> <td><a href="excluir_arquivo.php?excluir=<?php echo$file?>">Excluir</a></td> </tr> <!--<tr> <td><?php echo $i ?></td> <td><img src="<?php echo $dir.'/'.$file ?>" title="<?php echo $file ?>" style="width: 15%;"/></td> <td><a href="excluir_arquivo.php?excluir=<?php echo$file?>">Excluir</a></td> </tr>--> <?php } } ?> </tbody> </table> </div> <!-- /.table-responsive --> </div> <!-- /.panel-body --> </div> </div> </div> </div> <!-- /#page-wrapper --> </div> <!-- /#wrapper --> <!-- jQuery --> <script src="../vendor/jquery/jquery.min.js"></script> <!-- Bootstrap Core JavaScript --> <script src="../vendor/bootstrap/js/bootstrap.min.js"></script> <!-- Metis Menu Plugin JavaScript --> <script src="../vendor/metisMenu/metisMenu.min.js"></script> <!-- Custom Theme JavaScript --> <script src="../dist/js/sb-admin-2.js"></script> </body> </html>
-
Peguei um sistema com programação orientada a objeto para mexer, preciso fazer com o que o usuário exclua mais de um itens de uma só vez. meus arquivos são estes. <form action="excluir.php" method="post"> <input type="submit" value="Excluir"><?php $grid = new GridHelper('Clientes'); $grid -> addColuna( array( 'conteudo'=>"<input type=\"checkbox\" value=\"{{IdCli}}\" name=\"excluira[]\">", 'title'=>'Exluir', 'ordenavel'=>false, 'tamanho'=>'50', 'align'=>'center', 'ordem'=>1, ) ); </form>Para fazer a exclusão de um só registro esta funcionando, segue o código public function excluirAction(){ indexController::checaLogin(); $model = new Clientes(); $primaryMethod = 'set'.$model->getPrimaryKey('funcao'); $model->$primaryMethod(System::getInstance()->getParams($model->getPrimaryKey('funcao'))); $model->setStatusCli('X'); if ($model->update('id_cli = '.$model->getIdCli())){ Messages::getInstance()->addMessage('Registro excluido com sucesso!','success'); }else{ Messages::getInstance()->addMessage('Problemas ao excluir registro','danger'); } $this->indexAction(); return $this; }Normalmente uso assim, mais como posso incluir o feroach(); com o php para que se exclua vários registro de uma só vez $excluir = $_POST["excluira"]; foreach($excluir as $registro){ $sql = "delete from recados WHERE idx = $registro"; $rs = mysql_query($sql, $conecxao) or die(mysql_error()); }
-
Galera,queria Saber pra que servem as Heranças e qual a diferença de Uma Herança Com o Modificador Public e uma com o Modificador private? desde Já Agradeço.
- 1 resposta
-
- heranças em c++
- poo
-
(e %d mais)
Tags:
-
Eu posso programar em c++ usando o c apenas pelo fato de c++ ser orientado a objetos? Ou seria melhor migrar direto para c++? Ou não há necessidade? :unsure: