Ir para conteúdo

Samuel Pietro

Members
  • Total de itens

    69
  • Registro em

  • Última visita

  • Dias vencidos

    5

Samuel Pietro venceu o dia em Junho 28 2017

Teve o conteúdo mais curtido

Reputação

15 Levemente Bom

Sobre Samuel Pietro

  • Data de Nascimento 05/26/1999

Informações Pessoais

  • Sexo
    Masculino
  • Localização
    Brasil
  • Interesses
    PHP, MySQL, Wordpress, HTML, CSS, CNAB, Febraban

Contato

  • Site Pessoal
    https://sampietro.com.br/

Últimos Visitantes

1571 visualizações
  1. Vou criar uma rotina completa voltada nessa situação, Para o exemplo a seguir usei PDO para fazer a conexão ao banco de dados. ESTE É O ARQUIVO conexao.php <?php // DEFININDO AS VARIAVEIS PARA A CONEXÃO COM O BD, ALTERAR CONFORME OS SEUS DADOS DE ACESSO define( 'MYSQL_HOST', 'localhost' ); define( 'MYSQL_USER', 'usuario' ); define( 'MYSQL_PASSWORD', 'senha' ); define( 'MYSQL_DB_NAME', 'nome_do_banco' ); // FAZ A CONEXÃO E CASO DÊ ERRO EXIBE QUE NÃO FOI POSSIVEL CONECTAR try{ $pdo = new PDO( 'mysql:host=' . MYSQL_HOST . ';dbname=' . MYSQL_DB_NAME, MYSQL_USER, MYSQL_PASSWORD ); } catch ( PDOException $e ){ echo 'Erro ao conectar com o MySQL: ' . $e->getMessage(); } ESTE É O ARQUIVO consulta.php <?php //CARREGA AS INFORMAÇÕES DA CONEXÃO include_once "conexao.php"; $projeto = "11"; //SUPONDO QUE VOCÊ ESTA CONSULTANDO AS INFORMAÇÕES DA FASE DO PROJETO 11 //CRIA A STRING COM SEU SELECT //(SELECIONA TODOS OS CAMPOS DA TABELA "tblprojetos" COM A COLUNA "idprojeto" IGUAL A VARIAVEL $projeto) $sql = "SELECT * FROM tblprojetos WHERE idprojeto='$projeto'"; $result = $pdo->query( $sql ); $rows = $result->fetchObject(); //DEFINE A VARIAVEL $fase COM A INFORMAÇÃO OBTIDA NA COLUNA fase $fase = $rows->faseprojeto; //VERIFICANDO SE A FASE É IGUAL A 2 if ($fase == 2) { $msgfase = "Mensagem: Fase é igual a 2"; } else { $msgfase = "Mensagem: Fase não é igual a 2, a fase atual é: ".$fase; } Agora basta inserir o seguinte código onde você precisar que seja adicionado a Mensagem; <?php echo $msgfase; ?> Eu imaginei como se fosse a consulta para a fase de andamento de alguns projetos; e como base usei a seguinte tabela no banco de dados CREATE TABLE `tblprojetos` ( `idprojeto` int(5) NOT NULL, `nomeprojeto` varchar(256) NOT NULL, `faseprojeto` int(2) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ALTER TABLE `tblprojetos` ADD PRIMARY KEY (`idprojeto`); ALTER TABLE `tblprojetos` MODIFY `idprojeto` int(5) NOT NULL AUTO_INCREMENT; COMMIT; Espero que eu tenha ajudado!
  2. Samuel Pietro

    Formulário com muitos campos php mysql

    Veja mais sobre codeIgniter, ou mesmo que outros frameworks do tipo. Com frameworks MVC você consegue automatizar processos referentes ao CRUD de forma muito rápida e dinâmica.
  3. Use o seguinte código: $fase = //RESULTADO DO SEU SELECT if ($fase == 2) { echo "Mensagem: Fase é igual a 2" }else {} Caso precise que cria a consulta para gerar seu select me informe qual drive você está usando atualmente (PDO, MySQLi, etc).
  4. Samuel Pietro

    Exibir consulta JSON com PHP

    Olá pessoal! Preciso da ajuda de vocês no seguinte! Tenho um arquivo retornos.json { "retornos": [ { "id": 1, "sigla": "00", "nome": "Efetuado" }, { "id": 2, "sigla": "01", "nome": "Inválido" }, { "id": 3, "sigla": "02", "nome": "Corrompido" } ] } E na minha aplicação feita com CodeIgniter tenho uma consulta que me mostra a sigla que está cadastrada no BD. foreach ($results as $r) { $retorno = $r->codRetorno; } Eu preciso que essa consulta ao me retornar a sigla 02 por exemplo o echo apresente o "nome" para tal "sigla" que esta cadastrada no JSON. No caso seria a seguinte lógica: if ("$retorno" == JSON["sigla"]){ echo JSON["nome"]; } //ESTE NÃO É UM CÓDIGO VÁLIDO, É APENAS PARA FINS DE ENTENDER A LÓGICA DO QUE EU PRECISO. // PS. ESSA LOGICA PRECISA SER APLICADA DENTRO DE UM FOREACH COM MILHARES DE REGISTROS. Como eu posso fazer isso?
  5. Samuel Pietro

    UPDATE apenas nos campos em branco

    Estou com a seguinte situação. Preciso que o Update só aconteça nos campos vazios. Por exemplo, tenho no CSV id;a;b;c 1;1;;3 1;1;2;; |id | a | b | c | | 1 | 1 | | 3 | | 1 | 1 | 2 | | Na primeira linha tenho o campo da coluna b em branco, logo ele irá inserir no banco de dados o conteúdo da primeira linha, quando ele ler a segunda linha irá ver que a minha key, que é a coluna id, já existe e irá atualizar, o problema é que eu preciso que atualize apenas os campos em branco, pois se atualizar todos os campos ele iria substituir o campo da coluna c que ficaria em branco ! O código que fiz até o momento! INSERT INTO tabela (id, a, b, c) VALUES ('$column[0]','$column[1]','$column[2]','$column[3]') on duplicate key UPDATE id='$column[0]',a='$column[0]', b='$column[0]', c='$column[0]' Gostaria da ajuda de vocês para saber como posso adequar esse código na minha necessidade, seria tipo adcionar is null UPDATE.. sei lá, tentei várias opções mas sem sucesso ainda!
  6. Samuel Pietro

    Erro na consulta PDO

    Sim no arquivo logar.php tem require_once('functions.php'); e no functions.php tem require_once('conexao.php'); Realmente eu tinha deixado passar, resolvi adcionando no conexao.php o codigo abaixo: $conexao = conexao::getInstance(); Obrigado pela ajuda! :) RESOLVIDO!!!
  7. Samuel Pietro

    Erro na consulta PDO

    Preciso da ajuda de vocês para corrigir um erro com meu código. O login é processado por logar.php, mas na linha 19 apresenta o seguinte erro: Fatal error: Uncaught Error: Call to a member function prepare() on null in /home2/********/cnab/logar.php:19 Stack trace: #0 {main} thrown in /home2/********/cnab/logar.php on line 19 O código completo pode ser encontrado no repositorio do GitHub: https://github.com/Sampietro/cnab É executado em https://cnab.sampietro.com.br/logar.php
  8. Samuel Pietro

    Como colocar o resultado do Select em uma variavel?

    Tenho um select em PDO e preciso que a consulta retornada vire uma variavel, mas a variavel só pega a ultima linha da tabela e eu preciso que pegue todas as linhas que existirem. $conexao = conexao::getInstance(); $sql = 'SELECT * FROM RegistroE'; $stm = $conexao->prepare($sql); $stm->execute(); $Sql = $stm->fetchAll(PDO::FETCH_OBJ); foreach ($Sql as $SqlReg): $conteudo_meio = picture_X($SqlReg->E_01,1) .picture_X($SqlReg->E_02,25) .picture_9($SqlReg->E_03,4) .picture_X($SqlReg->E_04,14) .picture_9($SqlReg->E_05,8) .picture_9($SqlReg->E_06,8) .picture_9($SqlReg->E_07,8) .picture_9($SqlReg->E_08,8) .picture_9($SqlReg->E_09,8) .complementoRegistro(96,"brancos") .picture_9($SqlReg->E_11,1) .complementoRegistro(1,"brancos") ; endforeach; Como eu poderia está fazendo isto?
  9. Samuel Pietro

    Select só exibe a ultima linha da tabela

    Bem alguns avanços que consegui: Eu subtitui a variavel $conteudo_meio por print e a consulta foi retornada com todos os regstros, mas eu me esbarrei em outro problema. Mais a frente no codigo eu preciso ler o conteudo que está no print, até tentei print onde eu preciso mas ai volta a exibir apenas a ultima linha. E não minha pergunta é: Se isso for logicamente possivel, como eu coloco o conteudo do print dentro de uma variavel? ACABEI DE VERIFICAR QUE ASSIM NÃO RESOLVE PRA MIM, POIS A FUNCTION function picture_x NÃO FUNCIONARA COMO ESPERADO, ELA CRIA ESPAÇOS EM BRANCOS NECESSARIOS PARA O PADRÃO DE 150 POSIÇÕES E print IRÁ OS SUPRIMIR MANTENDO APENAS UM UNICO ESPAÇO
  10. Samuel Pietro

    Select só exibe a ultima linha da tabela

    Estou desenvolvendo um sistema para gerar arquivos de remessa para a CEF (Seguindo o padrão CNAB150) Até então tudo Okay. Meu problema está na hora de gerar a remessa que só consta a ultima linha da respectiva tabela no Banco de dados. Eu preciso que gere com todas as linhas que estiverem na tabela (Mais pra frente irei colocar alguns filtros para gerar por data ou por Numero de Serie) Minha conexão com o Banco está assim: <?php define('SGBD', 'mysql'); define('HOST', 'localhost'); define('DBNAME', '******'); define('CHARSET', 'utf8'); define('USER', '*******'); define('PASSWORD', '******'); define('SERVER', 'linux'); class conexao { /* * Atributo estático de conexão */ private static $pdo; /* * Escondendo o construtor da classe */ private function __construct() { // } /* * Método privado para verificar se a extensão PDO do banco de dados escolhido * está habilitada */ private static function verificaExtensao() { switch(SGBD): case 'mysql': $extensao = 'pdo_mysql'; break; case 'mssql':{ if(SERVER == 'linux'): $extensao = 'pdo_dblib'; else: $extensao = 'pdo_sqlsrv'; endif; break; } case 'postgre': $extensao = 'pdo_pgsql'; break; endswitch; if(!extension_loaded($extensao)): echo "<h1>Extensão {$extensao} não habilitada!</h1>"; exit(); endif; } /* * Método estático para retornar uma conexão válida * Verifica se já existe uma instância da conexão, caso não, configura uma nova conexão */ public static function getInstance() { self::verificaExtensao(); if (!isset(self::$pdo)) { try { $opcoes = array(\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'); switch (SGBD) : case 'mysql': self::$pdo = new \PDO("mysql:host=" . HOST . "; dbname=" . DBNAME . ";", USER, PASSWORD, $opcoes); break; case 'mssql':{ if(SERVER == 'linux'): self::$pdo = new \PDO("dblib:host=" . HOST . "; database=" . DBNAME . ";", USER, PASSWORD, $opcoes); else: self::$pdo = new \PDO("sqlsrv:server=" . HOST . "; database=" . DBNAME . ";", USER, PASSWORD, $opcoes); endif; break; } case 'postgre': self::$pdo = new \PDO("pgsql:host=" . HOST . "; dbname=" . DBNAME . ";", USER, PASSWORD, $opcoes); break; endswitch; self::$pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { print "Erro: " . $e->getMessage(); } } return self::$pdo; } public static function isConectado(){ if(self::$pdo): return true; else: return false; endif; } } Minhas Functions <?php /*Campos Numéricos (“Picture 9”) • Alinhamento: sempre à direita, preenchido com zeros à esquerda, sem máscara de edição; • Não utilizados: preencher com zeros. */ function picture_9($palavra,$limite){ $var=str_pad($palavra, $limite, "0", STR_PAD_LEFT); return $var; } /* Campos Alfanuméricos (“Picture X”) • Alinhamento: sempre à esquerda, preenchido com brancos à direita; • Não utilizados: preencher com brancos; • Caracteres: maiúsculos, sem acentuação, sem ‘ç’, sem caracteres especiais. */ function picture_x( $palavra, $limite ){ $var = str_pad( $palavra, $limite, " ", STR_PAD_RIGHT ); $var = remover_acentos( $var ); if( strlen( $palavra ) >= $limite ){ $var = substr( $palavra, 0, $limite ); } $var = strtoupper( $var );// converte em letra maiuscula return $var; } function sequencial($i) { if($i < 10) { return zeros(0,5).$i; } else if($i > 10 && $i < 100) { return zeros(0,4).$i; } else if($i > 100 && $i < 1000) { return zeros(0,3).$i; } else if($i > 1000 && $i < 10000) { return zeros(0,2).$i; } else if($i > 10000 && $i < 100000) { return zeros(0,1).$i; } } function zeros($min,$max) { $x = ($max - strlen($min)); for($i = 0; $i < $x; $i++) { $zeros .= '0'; } return $zeros.$min; } function complementoRegistro($int,$tipo) { if($tipo == "zeros") { $space = ''; for($i = 1; $i <= $int; $i++) { $space .= '0'; } } else if($tipo == "brancos") { $space = ''; for($i = 1; $i <= $int; $i++) { $space .= ' '; } } return $space; } ?> E Finalmente o meu Select $conexao = conexao::getInstance(); $sql = 'SELECT * FROM RegistroE'; $stm = $conexao->prepare($sql); $stm->execute(); $Sql = $stm->fetchAll(PDO::FETCH_ASSOC);//Já tentei usar tmb $Sql = $stm->fetchAll(PDO::FETCH_OBJ); MAS O PROBLEMA PERSISTE foreach($Sql as $SqlReg): $conteudo_meio= picture_X($SqlReg->E_01,1) .picture_X($SqlReg->E_02,25) .picture_9($SqlReg->E_03,4) .picture_X($SqlReg->E_04,14) .picture_9($SqlReg->E_05,8) .picture_9($SqlReg->E_06,8) .picture_9($SqlReg->E_07,8) .picture_9($SqlReg->E_08,8) .picture_9($SqlReg->E_09,8) .complementoRegistro(96,"brancos") .picture_9($SqlReg->E_11,1) .complementoRegistro(1,"brancos") ; endforeach; Eu preciso da ajuda para listar todos os registros e não apenas o ultimo.
  11. Samuel Pietro

    Por que tem plugin que não pega a tradução?

    Algo que já faço quando acontece e claro o plugin já tem algum arquivo de tradução eu apagado todos e nomeio o pt_BR com en_US funciona que é uma maravilha
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.