Publicidade

AndersonWS

Members
  • Total de itens

    79
  • Registro em

  • Última visita

  • Dias vencidos

    1

AndersonWS venceu o dia em Abril 4

Teve o conteúdo mais curtido

Reputação

6 Regular

Sobre AndersonWS

Informações Pessoais

  • Sexo
    Masculino

Últimos Visitantes

86 visualizações
  1. php

    Estou fazendo o create e surgiu umas questões. Como eu faria isso em uma classe? Segue o que foi feito. public function create($nome,$status) { try { // insert no banco de dados $stmt = $this->db->prepare("INSERT INTO ".$this->table." (nome,status) VALUES (:nome, :status)"); $stmt->bindParam( ':nome', $nome, PDO::PARAM_STR ); $stmt->bindParam( ':status', $status, PDO::PARAM_STR ); $stmt->execute(); $id_inserido = $this->db->lastInsertId(); $this->db = null; return $id_inserido; } catch (PDOException $e) { die('Error: '. $e->getMessage() ); } } Esta correto? Está seguro? Dos tratamentos eu eu faria assim: $nome = mysqli_real_escape_string($link, $nome); Os tratamentos na classe da forma que fiz estão boas? Agradeço as opiniões dos mais experientes. Melhorias? Ajustes? Grato.
  2. php

    Bom dia, agradeço as dicas e orientações, como um projeto de estudo estou aprendendo muito. Vou olhar sim os padrões indicados e ajustar a classe. Entendo o que você quer dizer e concordo plenamente por isso estou postando aqui para que esta classe fique bem escrita e não tenha esses problemas. Se alguém mais tiver dicas ou sugestões ou até mesmo exemplos pode postar! Vou escrever aqui assim que tiver feito as modificações e no final espero poder postar uma ótima classe para ajudar a toda a comunidade.
  3. php

    Gostei muito das dicas e sugestões aqui e continuando e querendo melhorar a classe e torna-la mais genérica e versátil possível, fiz um ajuste para poder usar para qualquer tabela: index.php $table = 'ufs'; $p = new Select($table); $dados = $p->listar(); foreach ($dados as $l) { echo $l['nome'].'<br/>'; } e na classe Select.class.php: class Select { private $db; protected $tabela; public function __construct($tabela) { $this->tabela = $tabela; // atribui a instância de conexão na variável $this->db = Conecta::conectar(); } public function listar() { try { // consulta que retorna $query = $this->db->prepare("SELECT * FROM ".$this->tabela.""); $query->execute(); return $query->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { die('Error: '. $e->getMessage() ); } } } Não sei se é uma boa maneira e aceito sugestões ou uma melhor. Achei muitos exemplos diferentes na internet e confesso que de tantos exemplos diferentes acabei não sabendo qual o mais "ideal" ou ao menos mais simples e seguro possível. Outra questão como eu faria o mesmo para "WHERE", ou seja, WHERE id = 1 ou WHERE nome = '%Garcia' ? Desde já agradeço as ideias e sugestões
  4. php

    Como falei, posto agora o resultado após as ótimas dicas e orientações para seguir melhorando peço que quem tiver melhores práticas que ajude para termos uma boa classe aqui para ajudar a comunidade! class Conecta { private static $instance = null; private function __construct() {} private function __clone() {} public static function conectar() { if (!isset(self::$instance)) { try { self::$instance = new PDO("mysql:host=MEUHOST;dbname=MEUBANCO", "MEUUSUARIO", "MINHASENHA"); self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { echo "Erro: " . $e->getMessage(); } } return self::$instance; } } class SelecionaOrganizacao { private $db; public function __construct() { // atribui a instância de conexão na variável $this->db = Conecta::conectar(); } public function listarOrganizacoes() { try { // consulta que retorna $query = $this->db->prepare("SELECT * FROM organizacao"); $query->execute(); return $query->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { die('Error: '. $e->getMessage() ); } } } // Autoload spl_autoload_register(function($className) { $file = __DIR__ . DIRECTORY_SEPARATOR . str_replace('\\',DIRECTORY_SEPARATOR, 'class\\' . $className) . ".class.php"; if(file_exists($file)){ require_once($file); } }); // index include 'Autoload.php'; $p = new SelecionaOrganizacao(); $dados = $p->listarOrganizacoes(); foreach ($dados as $l) { echo $l['nomeOrg'].'<br/>'; } Vou deixar os comentários para os mais experientes.
  5. php

    Mudei o nome para Conexao.class.php e funcionou. Erro de principiante. Obrigado a todos vou continuar estudando aqui e posto o resultado quando finalizar.
  6. php

    Entendi porém dá erro de Class 'Conexao' not found in ... mas está na mesma pasta... class SelecionaOrganizacao { private $db; public function __construct() { // inclui a classe de conexão //require_once 'Database.class.php'; // atribui a instância de conexão na variável $this->db = Conexao::getInstance(); } public function listarOrganizacoes() { try { // consulta que retorna $query = $this->db->prepare("SELECT * FROM " . Conexao::getTabela('TB_ORGANIZACAO').""); $query->execute(); return $query->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { die('Error: '. $e->getMessage() ); } } } Quando 'descomento' require_once 'Database.class.php'; funciona. Quando comento da o erro... Autoload.php está na raiz As classes estão na pasta class/ Qual o problema?
  7. php

    Minhas classes estão dentro da pasta class/ O Autoload está na raiz (está errado?) Quanto a documentação vou ler sim, estou começando e claro que agradeço as dicas de leitura.
  8. php

    Valeu pelas dicas, me ajudou muito mas realmente estou com dúvidas quanto ao "chamar" a classe Conexao na classe SelecionaOrganizacao. Sei que deve ser bem básico mas como disse estou começando, poderiam me dar um exemplo de uma classe de consulta ao banco com um classe de conexão para ficar mais claro?
  9. php

    Amigo Williams Duarte primeiramente muito obrigado pelas explicações e tudo mais, talvez pra quem está com prática tudo isso é simples, mas pra quem está começando algo simples é mais complicado de entender. Primeiro quero comentar algumas coisas: - A questão do Autoload já tinha visto mas como copiei o exemplo de conexão e estava testando aqui não tinha implementado ainda, mas de qualquer forma estudei mais e entendi melhor. E sim já vi o Composer mas neste projeto em si não poderei usar. - Português ou Inglês. Nunca as duas coisas! - Verdade, falha minha! - Entendi, estou começando então ainda não peguei a pratica, obrigado. return $query->fetchAll(PDO::FETCH_ASSOC); - Isso eu copiei e colei do exemplo do arquivo de conexão e não mexi por isso não sei o que dizer sobre, segue o link (blog.unifick.com.br/desenvolvimento/classe-para-conexao-com-banco-de-dados-em-pdo): $query = $db->prepare("SELECT * FROM " . Conexao::getTabela('TB_ORGANIZACAO').""); - __construct [...] class SelectOrganizacao { private $db; public function __construct() { $this->db = Conexao::getInstance(); } [...] Sei que é errado usar o include mas não funcionou desta forma sem o include. Pode me dar exemplo de uso para usar uma classe "dentro" de outra? Alguma ajuda nesta parte?
  10. php

    Olá a todos. Estou fazendo um trabalho aqui e começando a usar Orientação a Objetos com PHP então ainda não tenho plena certeza dos passos. Achei na net muitos exemplos mas como existem várias maneiras queria saber a melhor forma de quem tem mais experiência. Segue o código criado até o momento, classe SelectOrganizacao.class.php <?php /** * * Classe para Listar Organizações * @autor Anderson de Oliveira * @version 1.0 * **/ class SelectOrganizacao { // campos da tabela private $idOrg; private $nmOrg; private $statusOrg; private $cad; private $alt; public function listarOrganizacoes() { // inclui a classe de conexão require_once 'Database.class.php'; // atribui a instância de conexão na variável $db = Conexao::getInstance(); // consulta que retorna $query = $db->prepare("SELECT * FROM " . Conexao::getTabela('TB_ORGANIZACAO').""); $query->execute(); $num_rows = count($query); if ($num_rows > 0) { // escreve a consulta foreach($query->fetchAll(PDO::FETCH_ASSOC) as $l) { $this->idOrg = $l['idOrg']; $this->nmOrg = $l['nmOrg']; $this->statusOrg = $l['statusOrg']; $this->cad = $l['cad']; $this->alt = $l['alt']; $dados[]=array( "idOrg"=>$this->idOrg, "nmOrg"=>$this->nmOrg, "statusOrg"=>$this->statusOrg, "cad"=>$this->cad, "alt"=>$this->alt ); } return $dados; } } } E no html: <?php include "class/SelectOrganizacao.class.php"; $p = new SelectOrganizacao(); $dados = $p->listarOrganizacoes(); foreach ($dados as $l) { echo $l['idOrg'].' - '.$l['nmOrg'].' - '.$l['statusOrg'].' - '.$l['cad'].' - '.$l['alt'].'<br/>'; } ?> Funciona certinho. Minhas dúvidas: - Sintaxe/uso correto, vícios ou forma errada de proceder; - Em que eu poderia melhorar quanto a performance; - Como eu faço para retornar no meu html o valor de "$num_rows" ou então dar um valor true (existem resultados) e false (não existem); - Outras sugestões. Desde já agradeço a todos, assim que forem me dando as dicas para melhorar ou eu fizer uma melhoria vou postando aqui.
  11. Muito extenso no IDE mesmo.
  12. Funcionou certinho Pita! Desta forma mostra formatadinho. Se não for pedir muito mas ficou muito extenso o texto. Como eu poderia dar quebra de linha no script? Está assim: <div class='circleSlider'><span class='to-tag'> até </span><span class='price'> - 20 </span><span class='half-size'> % </span><span class='dt-tag'> de desconto </span></div><h3> Cadastre-se em nosso e receba em seu e-mail <br/> promoções e descontos especiais. </h3><h1> Cadastre seu e-mail e ganhe descontos! </h1><a href=''> <input type='submit' class='sRed' name='ofertas' value='Veja nossas ofertas' /> </a> E gostaria se der que ficasse assim: <div class='circleSlider'> <span class='to-tag'> até </span> <span class='price'> - 20 </span> <span class='half-size'> % </span> <span class='dt-tag'> de desconto </span> </div> <h3> Cadastre-se em nosso e receba em seu e-mail <br/> promoções e descontos especiais. </h3> <h1> Cadastre seu e-mail e ganhe descontos! </h1> <a href=''> <input type='submit' class='sRed' name='ofertas' value='Veja nossas ofertas' /> </a> Sugestão?
  13. Amigos encontrei esse script aqui em http://jsfiddle.net/utluiz/yR2ac/ Ele muda o texto de tempo em tempo, segue o código: <div id="frases"></div> <script> $(document).ready(function(){ var textos = ["texto 1", "texto 2", "texto 3"]; var atual = 0; $('#frases').text(textos[atual++]); setInterval(function() { $('#frases').fadeOut(function() { if (atual >= textos.length) atual = 0; $('#frases').text(textos[atual++]).fadeIn(); }); }, 3000); }); </script> O problema é que não sei como colocar html dentro destes textos, exemplo: var textos = ["<h1> Acumule pontos e ganhe descontos! </h1><a href=''> <input type='submit' name='cad' value='Cadastre-se gratuitamente' /> </a>", "texto 3"]; O problema é que mostra assim: <h1> Acumule pontos e ganhe descontos! </h1><a href=''> <input type='submit' name='cad' value='Cadastre-se gratuitamente' /> </a> O que eu preciso é mostrar um título e um botão mesmo. Como fazer?
  14. Amigos, acabei encontrando uma solução :D então posto aaqui pra ajudar quem precisa de algo semelhante. Achei no site http://rafaelcouto.com.br/envio-de-formulario-sem-refresh-com-jquery-php/ Muito boa a solução por sinal. Espero que ajude a quem precisar!
  15. Amigos estou montando um sistema onde na página principal mostra o evento do dia e para a pessoa poder escolher eventos de outros dias criei um calendário que busca do banco de dados as informações e mostra os dias que tem ou não evento. Funciona tudo certinho porém se eu clicar pra mudar de mês no calendário ele dá refresh na página. Atualmente uso assim: agenda/?mes=01&ano=2017 E pra mudar pra fevereiro ficaria assim: agenda/?mes=02&ano=2017 Mas quero que o refresh seja apenas na div, ou seja no calendário. Tem como me dar uma luz de como passar o GET pela url sem dar refresh na página toda mas somente na div? Achei este exemplo e é exatamente o que preciso, ou seja, mudar uma informação sem refresh. http://www.mauricioprogramador.com.br/posts/atualizar-parte-do-site-sem-refresh-na-pagina-inteira-com-javascript O problema é que não consigo "salvar" os dados enviados por este input na variável $mesEscolhido pra atualizar um query: $query = "SELECT * agenda WHERE MONTH(`data`) = $mesEscolhido and YEAR(`data`)= $anoEscolhido"; Essa query que muda o meu calendário. ----------------- Atualização: Encontrei este script no github, funciona quase como eu preciso, o problema é que ele não passa o POST e sim apenas add a mensagem "This is the response!", mudei o arquivo para response.php e testei para ver se ele retornava os valores do POST mas não retorna nada, alguma ideia? https://github.com/bighi/Auto-Ajax Agradeço desde já.