Advertisement
yesamarcos

E se você fizesse assim??

Dec 31st, 2016
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.83 KB | None | 0 0
  1. // aqui é o array da SUPER VARIÁVEL $_POST do form
  2. array (size=8)
  3.   'tipo' => string '3' (length=1)
  4.   'nomedaempresa' => string 'sos' (length=3)
  5.   'nome' => string 'janior' (length=6)
  6.   'cpf_cnpj' => string '23424' (length=5)
  7.   'telefone' => string '23423432' (length=8)
  8.   'tipo_empresa' => string '7' (length=1)
  9.   'email' => string '[email protected]' (length=18)
  10.   'senha' => string '123' (length=3)
  11.  
  12.  
  13. // quero pega o senha e alterar seu valor ou seja pega o 123 e por md5(123) ok
  14. // porque se vc perceber no meu método eu recebo um parâmetro que é meu array da super variável $_POST
  15. // OBSERVE TAMBÉM QUE MINHA QUERY É FORMADA AUTOMATICAMENTE, ASSIM EVITAREI FUTUROS ERROS AO AUTUALIZAR APENAS UM CAMPO OU MAIS
  16. // SENDO QUE ELE SO GRAVA CAMPOS QUE TIVER COMPLETO NOME E VALOR.
  17.  
  18.  
  19. // AQUI EU FAÇO O TRATAMENTO DO ARRAY DA variável $_POST onde vou retirar do array o nome do botão submit que também vira um post ao
  20. // pegar o array pela $_POST
  21. // também elimino campos vazios
  22.  
  23. if ( isset( $_POST[ 'acao' ] ) && $_POST[ 'acao' ] == 'salvar' ) {
  24.  
  25.         //$buscaUsers = $users->readLine( $id = $_POST[ 'id' ] );
  26.        
  27.         // CAMPOS NEGADOS
  28.         $remover = array(
  29.             $_POST[ 'acao' ],
  30.         );
  31.         // RETIRA DO ARRAY Os CAMPOS NEGADOS
  32.         $resultado = array_diff( $_POST, $remover );
  33.         $atualizar = array_filter($resultado);
  34.        
  35.         $users->update($atualizar);
  36.         //var_dump($atualizar);
  37.  
  38.  
  39.     }
  40.  
  41.  
  42. // LEMBRANDO ESSES DOIS TRECHOS ESTA NA PAGINA DO FORM OU SEJA TO MANDANDO O POST PRA MESMO PAGINA
  43.  
  44.  
  45. public function update( $atualizar ) {
  46.  
  47.         // PEGA OS INDICES DO ARRAY
  48.         $indices = array_keys( $atualizar );
  49.         // PEGA OS VALORES DO ARRAY
  50.         $valores = array_values( $atualizar );
  51.         // COMBINA OS ARRAYS PARA GERAR OS BINDPARAM
  52.         $params = array_combine( $indices, $valores );
  53.         // SEPARA POR IGUAL DOIS PONTOS PRA FORMA A QUERY EX: =:nome,  
  54.         $separadoPorDoisPontos = ':' . implode( '=:', $indices );
  55.         // COMBINA OS INDICES COM A $separadoPorDoisPontos EX: nome=:nome,
  56.         $c = array_combine( $indices, explode( '=', $separadoPorDoisPontos ) );
  57.  
  58.         $query = null;
  59.         // RETIRA DA QUERY A ULTIMA VIRGULA EX: nome=:nome, email=:email, senha=:senha
  60.         foreach ( $c as $key => $value ) {
  61.             if($key == 'senha'){
  62.                 $query .= $key . '=' . md5($value) . ',';
  63.             } else {
  64.                 $query .= $key . '=' . $value . ',';
  65.             }
  66.         }
  67.         // CRIA UM NOVA QUERY SEM A VIRGULA FINAL
  68.         $novaQuery = rtrim( $query, ',' );
  69.  
  70.         $sql = "UPDATE $this->table SET $novaQuery WHERE id = :id";
  71.         $stmt = DB::prepare( $sql );
  72.         foreach ( $params as $key => & $value ):
  73.             $stmt->bindParam( $key, $value );
  74.         endforeach;
  75.         return $stmt->execute();
  76.  
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement