Jump to content

Search the Community

Showing results for tags 'pdo'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 199 results

  1. Olá, Estou precisando inserir alguns dados diretamente no banco saindo dos campos inputs. Preciso que cada item do array seja cadastrado no banco, por exemplo o cliente vai comprar 3 ingressos, que os nomes dos 3 ingressos apareçam um a um nos registros. Ajustei os códigos abaixo, mas não funciona. Primeiro veja como está o html: <label for="nomeingresso">Ingresso:</label> <input type="text" id="ingresso" name="ingresso[]" placeholder="Ex.: Ingresso Conferência" class="form-control name_list" value="<?php echo $row_ingressos['ingresso'];?>" readonly required /> <label for="valoringresso">Valor:</label> <input type="text" class="form-control" id="valor" name="valor[]" placeholder="Ex.: 1.150,00" value="<?php echo $row_ingressos['valor'];?>" readonly required> <label for="nomeingresso">Quantidade:</label> <input type="number" id="quantidade" name="quantidade[]" class="form-control name_list" value="" min="0" required /> <input name="idingresso[]" type="hidden" id="idingresso" value="<?php echo $row_ingressos['id_ingresso']; ?>"> Bom, no código abaixo só funciona se eu tirar o foreach, com ele o código não insere os dados no banco. Estou testando o cadastro apenas com o campo ingresso para ver se funciona para depois adicionar os campos valor e quantidade, portanto não insere. function salvarIngresso(){ $ingresso = $_POST['ingresso']; $valor = $_POST['valor']; $quantidade = $_POST['quantidade']; try { // begin the transaction $this->pdo->beginTransaction(); // our SQL statements foreach($ingresso as $key => $ing){ $this->pdo->exec("INSERT INTO evn_pedidos_ing (ing) VALUES ('$ing');"); } // commit the transaction $this->pdo->commit(); echo "New records created successfully"; } catch(PDOException $e) { // roll back the transaction if something failed $this->pdo->rollback(); echo "Error: " . $e->getMessage(); } } A função de conexão é esta abaixo: function __construct(){ $this->pdo = new PDO('mysql:host='.$this->host.';dbname='.$this->db, $this->usuario, $this->senha); } Para entender melhor qual é o passo a passo do que estou tentando fazer tem um link abaixo. Ao clicar no botão "Inscrever" surge o lightbox do Pagseguro, então ele automaticamente insere no banco. Vale ressaltar que só não funciona com o FOREACH, sem esta função o código cadastra normalmente, porém só leva o primeiro item do array. Agradeço pela ajuda.
  2. Bom Dia. Será que alguém me pode ajudar? Na semana anterior estive com um professor a desenvolver um programa de insert, que também servirá para o Select/Delete/Update. Mas estou “preso”, pois, ele disse-me que eu poderia adaptar o código para as outras três opções. Passado quase uma semana não consegui fazer nada, será que alguém me consegue ajudar vendo o meu código? Obrigado, Gonçalo Silva <?php $self = $_SERVER['PHP_SELF']; $host_name = "127.0.0.1"; $database = "visteon"; $username = "root"; $password = ""; $Tabela =""; try { $dbo = new PDO('mysql:host='.$host_name.';dbname='.$database, $username, $password); } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die(); } // Selecicionar Tabela if(!isset($_POST['submeterTabela']) && !isset($_POST['submeterDados'])) { $form ="<form action=\"$self\" method=\"post\">"; $result = $dbo->query("SHOW TABLES"); $form.= "<select name='Tabela' class='select_box'>"; while ($row = $result->fetch(PDO::FETCH_NUM)) { $form.= "<option value='$row[0]'>$row[0]</option>"; } $form.= "</select>"; $form.="<br><input type=\"submit\" name=\"submeterTabela\" value=\"Submeter\"class='button'>"; echo($form); } // Preencher dados if(isset($_POST['submeterTabela']) && !isset($_POST['submeterDados'])) { $Tabela=$_POST['Tabela']; $form ="<form action=\"$self\" method=\"post\">"; $form.="<input type=\"hidden\" name=\"Tabela\"class='tabela1'value=\"$Tabela\"> <br>"; $form.="Introduz Dados<br>"; $sql ="SHOW columns from ".$Tabela; $result = $dbo->query($sql); while ($row = $result->fetch(PDO::FETCH_NUM)) { $sql1="select Campo from descritivoscampos where Tabela='".$Tabela."' and Campo='".$row[0]."';"; $Resultado = $dbo->query($sql1); $linha = $Resultado->fetch(PDO::FETCH_NUM); $form .= "$linha[0]"; $form.="<input type=\"text\" name=\"$row[0]\" size=\"5\"><br>"; } $form.=" <br><input type=\"submit\" name=\"submeterDados\"class='botao'value=\"Submeter\">"; echo($form); } if(isset($_POST['submeterDados'])) { $Tabela=$_POST['Tabela']; $sql ="SHOW columns from ".$Tabela; $result = $dbo->query($sql); $sql1 = "insert into $Tabela("; $aux=0; while ($row = $result->fetch(PDO::FETCH_NUM)) { if ($aux!=0) $sql1 .=", "; if ($row[0]!='id') { $sql1 .="$row[0]"; $aux=1; } } $sql1 .=") values ("; $result = $dbo->query($sql); $aux=0; while ($row = $result->fetch(PDO::FETCH_NUM)) { if ($aux!=0) $sql1 .= ", "; if ($row[0]!='id') { $aa=$_POST[$row[0]]; $sql1 .="'$aa'"; //$sql1 .="$row[0]"; $aux=1; } } $sql1 .=");"; $conn = mysqli_connect($host_name, $username, $password, $database) or die("Could not connect."); $result = mysqli_query($conn, $sql1) or die("Could not execute SQL query"); if ($result) { echo("Informação introduzida com Sucesso!!"); } } ?> Sinceramente já não sei o que mais fazer necessito mesmo de uma ajuda. Obrigado.
  3. 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?
  4. 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.
  5. Boa tarde pessoal. Estou precisando exibir na table, em forma de tabela, os resultado que uma query me retorna. O problema é que tenho que fazer isso de forma dinâmica, sem precisar acessar o nome das colunas da query. Quero que exiba os resultados automaticamente. Preciso exibir exatamente como o phpmyadmin exibe quando fazemos um query por la. Fiz assim (USANDO PDO) while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ foreach($row as $field => $value){ echo $field.": ".$value."<br>"; } } O problema é que dessa forma ele exibe o conteúdo em $field várias vezes. Por exemplo: Da forma acima, é exibido assim: NOME | CPF | CURSO XXX | VVV | AAAA NOME | CPF | CURSO YY | BBB | DFAA NOME | CPF | CURSO YY | BBB | DFAA E assim sucessivamente, enquanto tiver resultados da query Mas preciso que fique assim: NOME | CPF | CURSO XXX | VVV | AAAA ]YY | BBB | DFAA YY | BBB | DFAA Entenderam?
  6. Boa tarde a Todos...Estou com um problema que é o seguinte, preciso mostrar um relatório de controle de estoque que me da todos os produtos sem repetir tenho isso cadastrado Produto A - 10 - 12,00 Produto B - 5 - 13,00 Produto C- 5 - 15,00 Produto A - 12 - 35,00 Produto A - 23 - 55,00 Produto C - 30 - 150,00 Produto B - 5 - 13,00 Preciso Mostrar isso no controle de estoque Produto A - QTD TOTAL - VALOR TOTAL Produto B - QTD TOTAL - VALOR TOTAL Produto C - QTD TOTAL - VALOR TOTAL Meu código é PDO Obrigado
  7. EHCampos

    PDO SELECT

    Sou novo com PDO estou tentando fazer uma consulta em ordem decrescente porem não esta funcionando $usr= $pdo->prepare("SELECT * FROM usuario WHERE id = :id ORDER BY :rank DESC"); $usr->bindValue(':id', $_GET['id'], PDO::PARAM_INT); $usr->bindValue(':rank',$_GET['rank']); $usr->execute(); Quando executo um $count = $usr->rowCount(); echo $count; Ele mostra corretamente a quantidade de registro. porem quando tento exibir os mesmos em um while($row=$usr->fetch( PDO::FETCH_ASSOC )) Ele não me retorna nem um resultado Se eu inserir diretamente no SELECT funciona normal $usr= $pdo->prepare("SELECT * FROM usuario WHERE id = :id ORDER BY $_GET['rank'] DESC"); $usr->bindValue(':id', $_GET['id'], PDO::PARAM_INT); //$usr->bindValue(':rank',$_GET['rank']); $usr->execute();
  8. Olá amigos, estou tentando aprender sobre orientações de objetos e tudo mais e encontrei um tutorial ensinando a fazer um sistema de login bem bacana, com token e serial e decidi tentar. o sistema é o seguinte: O usuario acessa o index que consulta se $bdh esta ok (logado), se nao estiver ele joga para a pagina de login e cria um cookie e session com os dados para ver as tentativas e etc. se ele ficar errando, bloqueia e etc, se ele acessar cria os cookies e sessions com "id de usuario", "token", "serial". até ai ta funcionando tudo redondinho... até que entra a bendita função: public static function createRecord($dbh, $user_username, $user_id) { $query = "INSERT INTO sessions (session_userid, sessions_token, sessions_serial) VALUES (:user_id, :token, :serial;)"; $dbh->prepare("DELETE FROM sessions WHERE sessions_userid= :sessions_userid;")->execute(array(':sessions_userid' => $user_id)); $token = func::createString(30); //funciona $serial = func::createString(30); //funciona func::createCookie($user_username, $user_id, $token, $serial); //funciona func::createSession($user_username, $user_id, $token, $serial); //funciona $stmt = $dbh->prepare($query); $stmt->execute(array(':user_id' => $user_id, ':token' => $token, ':serial' => $serial)); } todas as demais funçoes que estao na mesma functions.php estão funcionando. a ideia desse sistema de login é verificar se a $dbh esta 100%, entao exibir o conteudo da pagina, conforme codigo abaixo: <?php if (!func::checkLoginState($dbh)) { header("location:login.php"); exit(); } echo 'olá ' . $_SESSION['username'] . '!'; ?> a função checkLoginState public static function checkLoginState($dbh) { if (!isset($_SESSION)) { session_start(); } if (isset($_COOKIE['userid']) && isset($_COOKIE['token']) && isset($_COOKIE['serial'])) { $query = "SELECT * FROM sessions WHERE sessions_userid = :userid AND sessions_token = :token AND sessions_serial = :serial;"; $userid = $_COOKIE['userid']; $token = $_COOKIE['token']; $serial = $_COOKIE['serial']; $stmt = $dbh->prepare($query); $stmt->execute(array(':userid' => $userid, ':token' => $token, ':serial' => $serial)); $row = $stmt->fetch(PDO::FETCH_ASSOC); if ($row['sessions_userid'] > 0) { if ( $row['sessions_userid'] == $_COOKIE['userid'] && $row['sessions_token'] == $_COOKIE['token'] && $row['sessions_serial'] == $_COOKIE['serial'] ) { if ( $row['sessions_userid'] == $_SESSION['userid'] && $row['sessions_token'] == $_SESSION['token'] && $row['sessions_serial'] == $_SESSION['serial'] ) { return true; } else { func::createSession($_COOKIE['username'], $_COOKIE['userid'], $_COOKIE['token'], $_COOKIE['serial']); return true; } } } } } ele não está armazenando dados na tabela sessions entao tbm nao consulta ai a conferencia da $dbh da erro e nada loga alguem consegue me dar uma luz??? estou a 2 dias batendo a cabeça nisso valeu
  9. gersonab

    resultado não aparece

    Tenho este sql que funciona normal: <?php $idtor = (int)$_GET['id_tor']; $dia = $_GET['dia']; $sql3 = "SELECT * FROM cantos INNER JOIN campeonato ON id_camp = id_campeonato INNER JOIN torneio ON id_tor = id_torneio WHERE data = :dia AND id_torneio = :idtor ORDER BY cantosfim DESC, pontos DESC, cantos DESC"; $stmt = $pdo->prepare($sql3); $stmt->bindParam(':idtor', $idtor); $stmt->bindParam(':dia', $dia); $stmt->execute(); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { ?> porém este outro não retorna nada, nem erro... <?php $idtor = (int)$_GET['id_tor']; $consul = "SELECT id_cantos, id_torneio, id_campeonato, SUM(cantosfim) AS cantfin, SUM(pontos) AS pontfin FROM cantos INNER JOIN campeonato ON id_camp = id_campeonato INNER JOIN torneio ON id_tor = id_torneio WHERE id_tor = :idtor ORDER BY pontfin DESC, cantfin DESC"; $stmt = $pdo->prepare($consul); $stmt->bindValue(':idtor', $idtor); $stmt->execute(); while ($lin = $stmt->fetch(PDO::FETCH_ASSOC)) { ?> não consigo encontrar o erro.
  10. Estou montando um website e gostaria de saber como faço para o usuário que acabou de deslogar ficar na mesma pagina ? por exemplo, na programação atual, ele clica em " Sair " e vai automaticamente para a index, independente de onde esteja. eu gostaria q ele permanecesse na mesma pagina em que estava programação q faz o mesmo deslogar... //essa é a navbar.php <li><a href="?sair=sim">Sair</a></li> // Esse é o logado.php if(isset($_GET['sair']) == "sim"){ $objUser->sairUsuario(); } //e esse é o usuarios.class.php public function sairUsuario(){ session_destroy(); header ('location: index.php '); }
  11. LuanMartinsTI

    Existe perigo ao criar uma funcao assim

    Eu gostaria de saber se existe algum problema relacionado a seguranca criando uma funcao assim, no exemplo sempre que eu crio uma funcao pre reutilizar os dados sao passados direto na chamada da funcao dentro do php, o usuario nao insere nenhum dado, quando o usuario vai inserir dados eu nao trabalho dessa forma, entao minha duvida [e, se mesmo o parametro da funcao sendo informado dentro do php no codigo pode existir algum problema. public function contar_cadastro($tabela, $sql){ try { if($sql == null){ $this->Select = $this->Conn->prepare("SELECT * FROM $tabela"); $this->Select->execute(); return $this->Select->rowCount(); }else{ $this->Select = $this->Conn->prepare("SELECT * FROM $tabela". " " ." $sql"); $this->Select->execute(); return $this->Select->rowCount(); } } catch (PDOException $exc) { exibeMensagens($Msg, $ErrNo); } } E as chamadas das funcoes assim $cmsPDO = new CmsPDO(); $r_userStaff = $cmsPDO->contar_cadastro('usuarios', ' where cargo > 2'); $r_userVip = $cmsPDO->contar_cadastro('usuarios', ' where cargo = 2'); $r_userBan = $cmsPDO->contar_cadastro('usuarios', " where ban = '1'"); $r_usuarioPDO = $cmsPDO->contar_cadastro('usuarios', null); $r_servVip = $cmsPDO->contar_cadastro('servidores', " where vipfree = 'V'"); $r_servFree = $cmsPDO->contar_cadastro('servidores', " where vipfree = 'F'"); $r_servInat = $cmsPDO->contar_cadastro('servidores', " where verificado = '1'"); $r_servOff = $cmsPDO->contar_cadastro('servidores', " where estado = 'Off'"); $r_servOn = $cmsPDO->contar_cadastro('servidores', " where estado = 'On'"); $r_servidores = $cmsPDO->contar_cadastro('servidores', null); Eu normalmente crio as funcoes assim: public function cadastrar_usuario($usuario){ try { if($this->veriricarnick($usuario) == false){ if($this->verificiarEmail($usuario) == false){ $query = 'INSERT INTO usuarios ' . '(id, nome, senha, email, cargo, ip)' . 'value(null,:nome, :senha, :email, :cargo, :ip)'; $this->Criar = $this->Conn->prepare($query); $this->Criar->bindValue(':nome' , $usuario->getNome() , PDO::PARAM_STR); $this->Criar->bindValue(':senha' , $usuario->getSenha(), PDO::PARAM_STR); $this->Criar->bindValue(':email' , $usuario->getEmail(), PDO::PARAM_STR); $this->Criar->bindValue(':cargo' , $usuario->getCargo(), PDO::PARAM_INT); $this->Criar->bindValue(':ip' , $usuario->getIp() , PDO::PARAM_STR); $this->Criar->execute(); if($this->Criar->rowCount() == 1){ return 1; }else{ return false; } }else{ return false; } }else{ return false; } } catch (PDOException $exc) { exibeMensagens("<b> Erro ao inserir.</b> Mensagem:{$exc->getMessage()} Código: {$exc->getCode()}", WS_ERROR); } }
  12. gersonab

    PHP funciona PDO não

    estou atualizando um código para PDO, o mesmo funciona na versão PHP mais antiga, no PDO não.Versão php: if ( isset( $_GET['action'] ) ) { $action = $_GET['action']; $action(); } function updateFotoCover() { $id_imovel = $_POST['id_imovel']; $id_img = $_POST['id_img']; mysql_query( "update imagens set prin = 0 where id_imovel = $id_imovel" ); mysql_query( "update imagens set prin = 1 where id_img = $id_img" ); echo 'Cover Atualizado <Br/>'; } function deleteFoto() { $id_img = $_POST['id_img']; $rset = mysql_query( "select * from imagens where id_img = $id_img" ); $linha = mysql_fetch_assoc($rset); $nome = $linha["img"]; unlink("php/files/".$nome); $sql = "DELETE FROM imagens WHERE id_img = $id_img"; $rset = mysql_query($sql); echo 'Foto Removida<Br/>'; } PDO: if ( isset( $_GET['action'] ) ) { $action = $_GET['action']; $action(); } function updateFotoCover() { $id_imovel = (int)$_POST['id_imovel']; $id_img = (int)$_POST['id_img']; $sql= "UPDATE imagens SET prin = 0 where id_imovel = :id_imovel"; $stmt = $pdo->prepare($sql); $stmt->bindValue(':id_imovel', $id_imovel, PDO::PARAM_INT); $stmt->execute(); $sql= "UPDATE imagens SET prin = 1 where id_img = :id_img"; $stmt = $pdo->prepare($sql); $stmt->bindValue(':id_img', $id_img, PDO::PARAM_INT); $stmt->execute(); } function deleteFoto() { $id_img = (int)$_POST['id_img']; $sql2 = "SELECT imagens FROM imagens WHERE id_imovel =:idc"; $stmt = $pdo->prepare($sql2); $stmt->bindParam(':idc', $id_img); $stmt->execute(); $aux = $stmt->fetch(PDO::FETCH_ASSOC)); unlink("php/files/".$aux["img"]); $sql3 = "DELETE FROM imagens WHERE id_imovel=:idc"; $stmt = $pdo->prepare($sql3); $stmt->bindParam(':idc', $id_img, PDO::PARAM_INT); $stmt->execute(); } Não encontro o erro.
  13. há tempos utilizo para cadastrar data no BD a instrução : implode('-',array_reverse(explode('/',$data))) com isso no input posso colocar 09/02/2019 e no banco de dados grava 2019-02-09 , até ai sem problemas, porém ao atualizar um sistema para pdo, estou com problema no insert dinâmico, onde posso fazer 1 ou mais inserts, da forma abaixo cadastro quantos eu quiser : $sql = "INSERT INTO cantos ( id_t, id_c, data, ca, cant, po, des) VALUES (:id_t, :id_c, :data, :ca, :cant, :po, :des)"; $stmt = $pdo->prepare($sql); foreach($_POST['idp'] as $indice => $valor) { $stmt->bindParam(':id_t', $_POST['id_tor'][$indice], PDO::PARAM_STR); $stmt->bindParam(':id_c', $_POST['idp'][$indice], PDO::PARAM_STR); $stmt->bindParam(':data', $_POST['data'][$indice], PDO::PARAM_STR); $stmt->bindParam(':ca', $_POST["ca"][$indice], PDO::PARAM_STR); $stmt->bindParam(':cant', $_POST['cant'][$indice], PDO::PARAM_STR); $stmt->bindParam(':po', $_POST['po'][$indice], PDO::PARAM_STR); $stmt->bindParam(':des', $_POST['des'][$indice], PDO::PARAM_STR); if ($stmt->execute()){ echo "Cadastrado com sucesso."; } no entento a data vai no formato do input 09/02/2019. caso utilize : $stmt->bindParam(':data', implode('-',array_reverse(explode('/',$_POST['data'][$indice]))), PDO::PARAM_STR); tenho o erro Strict standards: "Only variables should be passed by reference in "que significa "Apenas as variáveis podem ser passadas por referência" qual a melhor forma de se fazer neste caso ?
  14. Olá, sou iniciante em php OO, estou com uma dúvida e gostaria que alguém me ajudasse, preciso saber como eu faço pra chamar uma função "private estatic" que está eu outra classe, quando ela está na mesma classe eu consigo chamar usando o self::, mas em outra classe o self:: não funciona, como seria a forma correta? No Código abaixo eu preciso chamar a função conectaBanco(), através de outra classe. class Conexao{ private static $host = "localhost"; private static $dbname = "aluno"; private static $usuario = "root"; private static $senha = ""; private static $banco = null; private static function conectaBanco(){ try { self::$banco = new PDO('mysql:host=' . self::$host . ';dbname=' . self::$dbname, self::$usuario, self::$senha); return self::$banco; }catch (Exception $e) { echo "Mensagem de Erro:" . $e->getMessage() . '<br>'; echo "Linha do Erro:" . $e->getLine(); } } public function getBanco(){ return self::conectaBanco(); } }
  15. Bom dia a todos, não tenho experiencia com mysql e sou novato em programação, recentemente iniciei um sistema de controle de estoque onde em um dos módulos preciso selecionar apenas um registro de uma determinada tabela, para isso passo ao select o parâmetro necessário para me retornar o registro adequado. Li alguns tópicos de vários foruns e me deparei com PDO, então optei por utilizá-lo em minhas conexões com o banco de dados, porem recebo dois avisos: Atenção: PDOStatement :: execute () espera que o parâmetro 1 seja array, string dada em C: \ wamp64 \ www \ ControledeEstoque \ DAL \ DALUsuario.php na linha 13 e Aviso: Argumento inválido fornecido para foreach () em C: \ wamp64 \ www \ ControledeEstoque \ GUI \ listausu.php na linha 158. A seguir segue o DALUsuario.php e o Listausu.php a que se referem os avisos. Desde já agradeço a todos. <?php require_once '../Modelo/ModeloUsuario.php'; //Cruduser class DALUsuario extends ModeloUsuario{ protected $tabela = 'usuarios'; public function buscaUsucod($usucod){ $sql = "SELECT * FROM $this->tabela WHERE usucod = :cod"; $stm = DALConexao::prepare($sql); $stm->bindParam(':cod', $usucod, PDO::PARAM_INT); $stm->execute($sql); return $stm->fetch(); } public function buscaLogin($usulogin, $ususenha){ $sql = "SELECT * FROM $this->tabela WHERE usulogin = :usulogin AND ususenha = :ususenha LIMIT 1"; $stm = DALConexao::prepare($sql); $stm->bindParam(':usulogin', $usulogin, PDO::PARAM_STR); $stm->bindParam(':ususenha', $ususenha, PDO::PARAM_STR); return $stm->fetchAll( PDO::FETCH_ASSOC); } public function listaAll(){ $sql = "SELECT * FROM $this->tabela"; $stm = DALConexao::prepare($sql); $stm->execute(); return $stm->fetchAll(); } public function buscaTodos(){ $sql = "SELECT * FROM $this->tabela "; $stm = DALConexao::prepare($sql); $stm->execute(); return $stm->fetchAll(); } public function insert(){ $sql = "INSERT INTO $this->tabela(usunome,usulogin,ususenha,nivcod,usunivel,sitcod,ususituacao,clicod) VALUES(:nome,:usuario,:senha,:nivcod,:nivel,:sitcod,:situacao,:clicod)"; $stm = DALConexao::prepare($sql); $stm->bindParam(':nome', $this->nome); $stm->bindParam(':usuario', $this->usuario); $stm->bindParam(':senha', $this->senha); $stm->bindParam(':nivcod', $this->nivcod); $stm->bindParam(':nivel', $this->nivel); $stm->bindParam(':sitcod', $this->sitcod); $stm->bindParam(':situacao', $this->situacao); $stm->bindParam(':clicod', $this->clicod); return $stm->execute(); } public function alterar($usucod){ $sql = "UPDATE $this->tabela SET usunome=:nome,usulogin=:usuario,ususenha=:senha,nivcod=:nivcod,usunivel=:nivel,sitcod=:sitcod,ususituacao=:situacao, clicod=:clicod WHERE usucod=:usucod"; $stm = DALConexao::prepare($sql); $stm->bindParam(':usucod', $this->codusu); $stm->bindParam(':nome', $this->nome); $stm->bindParam(':usuario', $this->usuario); $stm->bindParam(':senha', $this->senha); $stm->bindParam(':nivcod', $this->nivcod); $stm->bindParam(':nivel', $this->nivel); $stm->bindParam(':sitcod', $this->sitcod); $stm->bindParam(':situacao', $this->situacao); $stm->bindParam(':clicod', $this->clicod); return $stm->execute(); } public function excluir($usucod){ $sql = "DELETE FROM $this->tabela WHERE usucod = :usucod"; $stm = DALConexao::prepare($sql); $stm->bindParam(':usucod', $usucod, PDO::PARAM_INT); return $stm->execute(); } } ?> <?php session_start(); include_once("../Controle/seguranca.php"); if($_SESSION['usuNivel'] != 'administrador'){ $_SESSION['Msg'] = "Erro, acesso não permitido."; header("location:../GUI/login.php"); } function __autoload($class) { require_once '../DAL/' . $class . '.php'; } ?> <!DOCTYPE html> <html lang="pt-br"> <head> <title>Controle de Estoque</title> <?php include_once("../GUI/cabecalhopagadm.php"); ?> </head> <body> <nav> <?php include_once("../GUI/menupagadm.php"); ?> </nav> <!-- Fim navbar --> <div class="container"><br /> <h2>Administração - Lista de Usuários</h2> <?php require_once("../GUI/msgs.php"); ?> <blockquote class="blockquote text-right"> <div class="float:left;"> <button type="button" class="btn btn-info btn-sm" data-toggle="modal" data-target="#modalinserir"> <i class="material-icons"> shop </i> Novo Usuário </button> </div> </blockquote> <div class="row"> <div class="col-12"> <!-- Inicio Modal --> <div class="modal fade" id="modalinserir" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title" id="myModalLabel">Cadastro de Usuários</h4> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> </div> <div class="modal-body"> <form class="form-horizontal" method="POST" action="http://localhost/ControledeEstoque../Controle/crud_usuario.php" enctype="multipart/form-data"> <div class="form-group"> <label for="recipient-name" class="col-sm-3 control-label">Empresa(cliente)</label> <div class="col-md-12 mb-2"> <select class="form-control is-valid" name="cliente" required> <option value="">Faça uma seleção</option> <?php $dalcli = new DALCliente(); foreach ($dalcli->buscaTodos() as $key => $value){ echo '<option value="'.$value->clicod.'">'.$value->clinome.'</option>'; } ?> </select> </div> </div> <div class="form-group"> <label for="recipient-name" class="col-sm-3 control-label">Nome</label> <div class="col-md-12 mb-2"> <input name="nome" type="text" class="form-control" placeholder="nome dcompleto" required> </div> </div> <div class="form-group"> <label for="recipient-name" class="col-sm-3 control-label">Usuário</label> <div class="col-md-12 mb-2"> <input name="usuario" type="text" class="form-control" placeholder="nome de usuário" required> </div> </div> <div class="form-group"> <label for="recipient-name" class="col-sm-3 control-label">Senha</label> <div class="col-md-12 mb-2"> <input name="senha" type="password" class="form-control" placeholder="senha de acesso" required> </div> </div> <div class="form-group"> <label for="recipient-name" class="col-sm-3 control-label">Nivel de acesso</label> <div class="col-md-12 mb-2"> <select class="form-control is-valid" name="nivel" required> <option value="">Faça uma seleção</option> <?php $dalnivel = new DALNivel(); foreach ($dalnivel->buscaTodos() as $key => $value){ echo '<option value="'.$value->nivcod.'">'.$value->nivnome.'</option>'; } ?> </select> </div> </div> <div class="form-group"> <label for="recipient-name" class="col-sm-3 control-label">Situação</label> <div class="col-md-12 mb-2"> <select class="form-control is-valid" name="situacao" required> <option value="">Faça uma seleção</option> <?php $dalsit = new DALSituacao(); foreach ($dalsit->buscaParteMenor() as $key => $value){ echo '<option value="'.$value->sitcod.'">'.$value->sitnome.'</option>'; } ?> </select> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-info btn-sm" data-dismiss="modal"> <i class = "material-icons"> cancel_presentation</i> Cancelar </button> <button type="submit" name="btncad" class="btn btn-success btn-sm"> <i class = "material-icons"> save</i> Cadastrar</span> </button> </div> </form> </div> </div> </div> </div> <!-- Fim Modal --> <div class="row"> <div class="col-md-12"> <table class="table table-condensed"> <thead> <tr> <th>Nome</th> <th>Usuário</th> <th>Nivel</th> <th>Situacao</th> <th class="cabecalho-tabela">Ação</th> </tr> </thead> <tbody> <?php $dalusu = new DALUsuario(); foreach($dalusu->buscaUsucod(2) as $key => $linha){ ?> <tr> <td><?php echo $linha -> usunome; ?></td> <td><?php echo $linha -> usulogin; ?></td> <td><?php echo $linha -> usunivel; ?></td> <td><?php echo $linha -> ususituacao; ?></td> <td class="cabecalho-tabela"> <button type="button" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#modalvisualizar<?php echo $linha -> usucod;?>"> <i class = "material-icons"> remove_red_eye</i> Visualizar </button> <button type="button" class="btn btn-warning btn-sm text-white" data-toggle="modal" data-target="#modalalterar<?php echo $linha -> usucod;?>"> <i class = "material-icons"> edit</i> Alterar </button> <button type="button" class="btn btn-danger btn-sm" data-toggle="modal" data-target="#modalexcluir<?php echo $linha -> usucod; ?>"> <i class = "material-icons"> delete_forever</i> Excluir </button> </td> </tr> <!-- Inicio Modal viasualizasusu --> <div class="modal fade" id="modalvisualizar<?php echo $linha -> usucod; ?>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title" id="myModalLabel"><?php echo "Usuário - ".$linha -> usunome; ?></h4> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> </div> <div class="modal-body"> <p><?php echo "Cód Usuário - ".$linha -> usucod; ?></p> <p><?php echo "Nome - ".$linha -> usunome; ?></p> <p><?php echo "Usuário - ".$linha -> usulogin; ?></p> <p><?php echo "Nível - ".$linha -> usunivel; ?></p> <p><?php echo "Situação - ".$linha -> ususituacao; ?></p> <div class="modal-footer"> <button type="button" class="btn btn-info btn-sm" data-dismiss="modal"> <i class = "material-icons"> exit_to_app</i> Fechar </button> </div> </div> </div> </div> </div> <!-- Fim Modal viasualizasusu--> <!-- Inicio Modalexcluir --> <div class="modal fade" id="modalexcluir<?php echo $linha -> usucod; ?>" tabindex="-1" role="dialog" aria-labelledby="modalexcluirLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title" id="modalexcluirLabel">Exclusão de Produto</h4> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> </div> <div class="modal-body"> <form class="form-horizontal" method="POST" action="http://localhost/ControledeEstoque../Controle/crud_produto.php" enctype="multipart/form-data"> <p><?php echo "Cód Usuário - ".$linha -> usucod; ?></p> <p><?php echo "Nome - ".$linha -> usunome; ?></p> <p><?php echo "Usuário - ".$linha -> usulogin; ?></p> <p><?php echo "Nível - ".$linha -> usunivel; ?></p> <p><?php echo "Situação - ".$linha -> ususituacao; ?></p> <p><?php echo "Registros excluídos não poderão ser recuparados.";?></p> <input name="Xcod" type="hidden" id="Xcod" value="<?php echo $linha -> usucod; ?>"> <div class="modal-footer"> <button type="button" class="btn btn-info btn-sm" data-dismiss="modal"> <i class = "material-icons"> cancel_presentation</i> Cancelar </button> <button type="submit" name="btnexc" class="btn btn-danger btn-sm"> <i class = "material-icons"> delete_forever</i> Excluir </button> </div> </form> </div> </div> </div> </div> <!-- Fim Modal Modalexcluir--> <!-- Inicio Modalalterar --> <div class="modal fade" id="modalalterar<?php echo $linha -> usucod;?>" tabindex="-1" role="dialog" aria-labelledby="modalalterarLabel" data-target="#modalalterar" data-backdrop="static" data-keyboard="false"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title" id="modalalterarLabel">Alteração de Produto</h4> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> </div> <div class="modal-body"> <form class="form-horizontal" method="POST" action="http://localhost/ControledeEstoque../Controle/crud_usuario.php" enctype="multipart/form-data"> <div class="form-group"> <label for="recipient-name" class="control-label">Empresa(cliente)</label> <select class="form-control is-valid" name="cliente" required> <option value="">Faça uma seleção</option> <?php $dalcli = new DALCliente(); foreach ($dalcli->buscaTodos() as $key => $value){ if($value->clicod != $linha->clicod){ echo '<option value="'.$value->clicod.'">'.$value->clinome.'</option>'; }else{ $clientecod = $value->clicod; $clientenome = $value->clinome; } } ?> <option value="<?php echo $clientecod;?>" <?php echo "selected"; ?> > <?php echo $clientenome;?> </option> </select> </div> <div class="form-group"> <label for="recipient-name" class="control-label">Nome</label> <input name="nome" type="text" class="form-control" id="nome" value="<?php echo $linha->usunome;?>" required> </div> <div class="form-group"> <label for="recipient-name" class="control-label">Usuário</label> <input name="usuario" type="text" class="form-control" id="usuario" value="<?php echo $linha->usulogin;?>" required> </div> <div class="form-group"> <label for="recipient-name" class="control-label">Senha</label> <input name="senha" type="password" class="form-control" id="senha" value="<?php //echo $linha->ususenha;?>" required> </div> <div class="form-group"> <label for="recipient-name" class="control-label">Nível de acesso</label> <select class="form-control is-valid" name="nivel" required> <option value="">Faça uma seleção</option> <?php $dalnivel = new DALNivel(); foreach ($dalnivel->buscaTodos() as $key => $value){ if($value->nivcod != $linha->nivcod){ echo '<option value="'.$value->nivcod.'">'.$value->nivnome.'</option>'; }else{ $nivelcod = $value->nivcod; $nivelnome = $value->nivnome; } } ?> <option value="<?php echo $nivelcod;?>" <?php echo "selected"; ?> > <?php echo $nivelnome;?> </option> </select> </div> <div class="form-group"> <label for="recipient-name" class="control-label">Situação</label> <select class="form-control is-valid" name="situacao" required> <option value="">Faça uma seleção</option> <?php $dalsit = new DALSituacao(); foreach ($dalsit->buscaParteMenor() as $key => $value){ if($value->sitcod != $linha->sitcod){ echo '<option value="'.$value->sitcod.'">'.$value->sitnome.'</option>'; }else{ $situacaocod = $value->sitcod; $situacaonome = $value->sitnome; } } ?> <option value="<?php echo $situacaocod;?>" <?php echo "selected"; ?> > <?php echo $situacaonome;?> </option> </select> </div> <input name="Xcod" type="hidden" id="Xcod" value="<?php echo $linha -> usucod;?>"> <div class="modal-footer"> <button type="button" class="btn btn-info btn-sm" data-dismiss="modal"> <i class = "material-icons"> cancel_presentation</i> Cancelar </button> <button type="submit" name="btnalt" class="btn btn-warning btn-sm text-white"> <i class = "material-icons"> edit</i> Alterar </button> </div> </form> </div> </div> </div> </div> <!-- Termino Modalalterar --> <?php } ?> </tbody> </table> </div> </div> <!-- DIV ROW --> </div> <!-- DIV COL - 12 --> </div> <!-- DIV ROW --> </div> <!-- DIV CONTAINER --> <?php include_once("../GUI/rodapepagadm.php"); ?> </body> </html>
  16. Rodrigo5468

    Validação em PDO OOP

    Boa tarde a todos. Estou desenvolvendo um sistema de registro para fins de estudos, mas tenho algumas dúvidas e dificuldades até. Estou usando "programação orientada a objetos", e quero validar alguns campos do meu registro, se puderem me auxiliar, será de grande ajuda. Meu Diretório: Projeto1/ ├── backend/ │ ├── classes/ │ │ ├── Register.php ├── index.php Em Register.php tenho o seguinte código para fazer a validação, mas acredito que estou fazendo algo de errado. public function setUsername($username) { $sql = "SELECT * FROM $this->table WHERE username = :username"; $stmt = Database::prepare($sql); $stmt->execute(array('username' => $_POST["username"])); if(empty($_POST["username"])) { return "O campo usuário não pode ser vázio."; }elseif(ctype_space($_POST["username"])) { return "Não pode usar apenas espaços no campo de usuário."; }elseif(strlen($_POST["username"] < 3)) { return "É necessário no mínimo 3 (três) caracteres no usuário."; }elseif(strlen($_POST["username"] > 15)) { return "O máximo é de 15 (quinze) caracteres no usuário."; }elseif(preg_match("/^[a-zA-Z0-9]*$/", $_POST["username"] == 0)) { return "O nome de usuário só pode conter letras e números. (sem espaços e sem caracteres epeciais)"; }elseif($stmt->num_rows !== 0) { return "O nome de usuário já está cadastrado em nossos bancos de dados."; }else { $this->username = $username; } } E no index.php tenho o seguinte código, acredito que está certo, mas eu gostaria de mostrar as mensagens de erros que estão no Register.php, como que posso fazer isso? $register = new Registers(); if(isset($_POST["cadastrar"])) { $username = $_POST["username"]; $email = $_POST["email"]; $password = $_POST["password"]; $register->setUsername($username); $register->setEmail($email); $register->setPassword($password); if($register->insert()) { return "Usuário cadastrado com sucesso."; } } Obrigado pela atenção!
  17. fabriciothe2018

    Condições diferentes da mesma coluna

    Olá, Tenho uma tabela chamada anuncios, nela há as colunas: id, nome, finalizar e datafim. Tenho os seguintes registros: 1, teste1, N, 0000-00-00 2, teste2, S, 2018-12-05 Gostaria de fazer um SELECT listando apenas os registros onde o valor da coluna finalizar seja N ou que seja S, desde que quando seja S, a datafim seja menor ou igual a hoje. De já agradeço a ajuda.
  18. fabriciothe2018

    in_array coluna mysql

    Olá, Tenho uma tabela chamada noticias, nesta tabela existe uma coluna chamada cidades. Há um registro onde o valor da coluna cidades é: 2,3,4 Gostaria de filtrar os registros que contenha o número 3 na coluna cidades. Há como criar uma condição? Uma espécie de in_array no MySQL? Exemplo: No exemplo acima não retorna nada, óbvio rsrs.. Retornaria apenas se eu usasse: ...cidades IN ('2,3,4') De já, agradeço a ajuda.
  19. <div class="video-sec"> <h4 class="heading-small">Mídias</h4> <div class="video-block"> <ul class="nav nav-pills justify-content-center mb-4" id="pills-nav" role="tablist"> <?php // Atribui uma conexão PDO $conexao = Connection::getInstance(); $controle_ativo = 2; //$controle_num_slide = 1; $sql = "SELECT * FROM db_post WHERE status=1 AND category='Mídia' ORDER BY created DESC LIMIT 3"; $stm = $conexao->prepare($sql); $stm->execute(); while($post = $stm->fetch(PDO::FETCH_OBJ)) { if($controle_ativo == 2) { ?> <li class="nav-item"> <a class="nav-link active" id="nav-pills-01" data-toggle="pill" href="#<?=$post->post_id?>"><?=$post->title?></a> </li> <?php $controle_ativo = 1; } else { ?> <li class="nav-item"> <a class="nav-link" id="nav-pills-02" data-toggle="pill" href="#<?=$post->post_id?>"><?=$post->title?></a> </li> <?php //$controle_num_slide++; } } ?> </ul> <div class="tab-content" id="nav-pills-content"> <?php // Atribui uma conexão PDO $conexao = Connection::getInstance(); $controle_ativo = 2; $sql = "SELECT * FROM db_post WHERE status=1 AND category='Mídia' ORDER BY created DESC LIMIT 3"; $stm = $conexao->prepare($sql); $stm->execute(); while($post = $stm->fetch(PDO::FETCH_OBJ)) { if($controle_ativo == 2) { ?> <div class="tab-pane fade show active" id="<?=$post->post_id?>" role="tabpanel"> <div class="row"> <div class="col-sm-6"> <div class="embed-responsive embed-responsive-16by9"> <!-- 21by9, 16by9, 4by3, 1by1 --> <iframe class="embed-responsive-item" src="<?=$post->url?>"></iframe> </div> </div> <div class="col-sm-6"> <p class="display-5"><?=$post->content?></p> <p class="card-text"> <small class="text-time"> <em>Publicado em <?=date('M,d',strtotime($post->created))?></em> </small> </p> </div> </div> </div> <?php $controle_ativo = 1; } else { ?> <div class="tab-pane fade" id="<?=$post->post_id?>a" role="tabpanel"> <div class="row"> <div class="col-sm-6"> <div class="embed-responsive embed-responsive-16by9"> <!-- 21by9, 16by9, 4by3, 1by1 --> <iframe class="embed-responsive-item" src="<?=$post->url?>"></iframe> </div> </div> <div class="col-sm-6"> <p class="display-5"><?=$post->content?></p> <p class="card-text"> <small class="text-time"> <em>Publicado em <?=date('M,d',strtotime($post->created))?></em> </small> </p> </div> </div> </div> <?php } } ?> </div> Há aba ativa está perfeita quando clico na segunda ou terceira aba nada acontece (não abre), tenho que deixar dinâmico. Ainda pergunto existe uma maneira com javascript para ativar a aba e seu conteúdo.
  20. Olá, poderiam me ajudar com o erro abaixo? [29-Oct-2018 10:05:04 America/Recife] PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[28000] [1045] Access denied for user 'mdoria'@'localhost' (using password: NO)' in /home/includes/conexao.php:22 Stack trace: #0 /home/includes/conexao.php(22): PDO->__construct('mysql:host=loca...', NULL, NULL) #1 /home/includes/connection.php(34): include('/home/mdoria/pu...') #2 /home/functions_ajax.php(2): include('/home/mdoria/pu...') #3 {main} thrown in /home/includes/conexao.php on line 22 Meu php está com a seguinte estrutura: Arquivo: connection.php <?php error_reporting(E_ALL & ~E_DEPRECATED & ~E_NOTICE); date_default_timezone_set("America/Recife"); session_start(); include "includes/constantes.php"; include "includes/conexao.php"; Arquivo: conexao.php <?php $conCore = new PDO("mysql:host=" . SERVIDOR . ";dbname=" . CORE_BANCO, CORE_USUARIO, CORE_SENHA); $conCore->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $conCore->query("SET NAMES 'utf8'"); $conCore->query('SET character_set_connection=utf8'); $conCore->query('SET character_set_client=utf8'); $conCore->query('SET character_set_results=utf8'); $query = "SELECT * FROM usuario WHERE identificador = '$_GET[sis]'"; $resultCore = $conCore->query($query); $rowCore = $resultCore->fetch(PDO::FETCH_OBJ); if (empty($rowCore->id)) { echo "<script>window.location.href = '$URLbase';</script>"; } define("BANCO", $rowCore->banco); define("USUARIO", $rowCore->user); define("SENHA", $rowCore->senha); $con = new PDO("mysql:host=" . SERVIDOR . ";dbname=" . BANCO, USUARIO, SENHA); $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $con->query("SET NAMES 'utf8'"); $con->query('SET character_set_connection=utf8'); $con->query('SET character_set_client=utf8'); $con->query('SET character_set_results=utf8'); Já antecipo meus agradecimentos a quem possa me auxiliar.
  21. Moscou

    Possível erro no statement PDO

    Guys, em uma aplicação teste, estava querendo salvar certas informações no bd, local funcionou ok, mas passando online, não. Online, fiz várias verificações, a conexão com o banco é feita, os valores são passados corretamente também, de acordo com o usuario. Alguém pode ajudar para saber se o codigo pode estar errado ou alguma outra coisa. Segue o codigo <?php ob_start(); session_start(); $user = filter_input(INPUT_POST, 'user'); $tel = filter_input(INPUT_POST, 'tel'); $email = filter_input(INPUT_POST, 'email'); $terms = filter_input(INPUT_POST, 'terms'); $img= $_FILES['img']['name']; function connection() { try { $dbhost = 'localhost'; $dbname = 'teste'; $dbuser = 'root'; $dbpass = ''; $pdo = new PDO('mysql:host='.$dbhost.';dbname='.$dbname, $dbuser, $dbpass, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $error) { echo 'ERRO: '.$error->getMessage(); } return $pdo; } $sql = "INSERT INTO teste(user, tel, email, terms, img) VALUES(:user, :tel, :email, :terms, :img)"; $stmt = connection()->prepare($sql); $stmt->bindParam(':user', $user, PDO::PARAM_STR); $stmt->bindParam(':tel', $tel, PDO::PARAM_STR); $stmt->bindParam(':email', $email, PDO::PARAM_STR); $stmt->bindParam(':img', $img, PDO::PARAM_STR); $stmt->bindParam(':terms', $terms); preg_match_all('/\.[a-zA-Z0-9]+/', $user, $extensao); // Tratamento para arquivo $folder = "arquivos/"; $folder = $folder . basename($user.' - '.(md5(uniqid()))); if(!in_array(strtolower(current(end($extensao))), array('.png', '.jpg'))) : if(move_uploaded_file($_FILES['img']['tmp_name'], $folder)): echo "A imagem". basename($_FILES['img']['name']). " veio"; else: echo "Algo de errado não deu certo. :("; endif; endif; if($stmt->execute()): header('Location:somewhere'); else: header('Location:somewhere'); endif; ob_end_flush(); ?>
  22. Tenho a tabela inform ( de informações ): CREATE TABLE IF NOT EXISTS `inform` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `photo_name` text COLLATE latin1_general_ci NOT NULL, `photo_content` mediumblob NOT NULL, `photo_content_type` varchar(255) COLLATE latin1_general_ci NOT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; Tenho também a tabela photos: CREATE TABLE IF NOT EXISTS `photos` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `foreign_key_inform` int(11) NOT NULL, `photo_name` text COLLATE latin1_general_ci NOT NULL, `photo_content` mediumblob NOT NULL, `photo_content_type` varchar(255) COLLATE latin1_general_ci NOT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; COMMIT; ( Estou apenas realizando testes ) Preciso fazer INSERT na inform e depois na photos, para isso tenho o code: <form action="?" method="POST" enctype="multipart/form-data" name="newProject"> <input type="file" name="coverPhoto" id="coverPhotos" required="required" /> <br> <br> <input type="file" name="photos[]" multiple="multiple" id="photos" /> <br> <br> <input type="submit" name="submit" value="submit" /> </form> <?php if ( isset ( $_POST['submit'] ) ) { if ( empty( $_FILES['photos']['name'] ) ) { echo '<br>' . 'CADASTRO INVALIDO !' . '<br>'; die(); } else { echo '<pre> '; print_r ( $_FILES['coverPhoto'] ); echo '</pre>'; $cover = $_FILES['coverPhoto']; $coverName = $_FILES['coverPhoto']['name']; $coverContent = file_get_contents ( $_FILES['coverPhoto']['tmp_name'] ); $coverType = $_FILES['coverPhoto']['type']; # $photos = $_FILES['photos']; foreach ($photos as $matriz) { foreach ($matriz as $interno) { if ( empty ( $interno ) ): $second = false; else: $second = true; endif; } } try { $database = new PDO("mysql:host=localhost;dbname=tests", "root", "admin"); $insertCover = "INSERT INTO inform VALUES (default, ?, ?, ?);"; $prepareCover = $database->prepare( $insertCover ); $prepareCover->bindParam(1, $coverName ); $prepareCover->bindParam(2, $coverContent ); $prepareCover->bindParam(3, $coverType ); if ( $prepareCover->execute() ): echo '<br>' . 'INFORMAÇÕES INSERIDAS !' . '<br>'; $last = $database->lastInsertId(); # echo $last; if ( $second ): $numberPhotos = count ( $_FILES['photos']['name'] ); $insertPhotos = 'INSERT INTO photos VALUES '; $photosValues = "(default, null, :photoName, :photoContent, :photoType),"; for ($v = 0; $v < $numberPhotos; $v++) { $replace = str_replace( array('default', 'null',':photoName', ':photoContent', ':photoType'), array('default', $last, ":photoName$v", ":photoContent$v", ":photoType$v"), $photosValues ); $insertPhotos .= $replace; } $insertPhotos = rtrim( $insertPhotos, ","); # echo '<br>' . $insertPhotos . '<br>'; $sth = $database->prepare( $insertPhotos ); for ($p = 0; $p < $numberPhotos; $p++) { // echo "\$sth->bindValue(\":photoName$param\", "; echo pathinfo ( $photos['name'][$param], PATHINFO_FILENAME) . ')<br>'; // # echo "$sth->bindValue(":photoContent$param", file_get_contents( $photos['tmp_name'][$param]));"; // echo "<br>\$sth->bindValue(\":PhotoType$param\", "; echo $photos['type'][$param] . ')<br>'; $sth->bindValue(':photoName' . $p, pathinfo ( $photos['name'][$p], PATHINFO_FILENAME ) ); $sth->bindValue(':photoContent' . $p, file_get_contents ( $photos['tmp_name'][$p] ) ); $sth->bindValue(':PhotoType' . $p, $photos['type'][$p]); } if ( $sth->execute() ): echo '<br>' . 'PROJETO CADASTRADO COM MAIS DE UMA FOTO !' . '<br>'; else: echo '<br>' . 'PROJETO COM MAIS DE UMA FOTO, PORÉM NÃO CADASTRADO !' . '<br>'; endif; else: echo '<br>' . 'PROJETO CADASTRADO COM UMA FOTO APENAS !' . '<br>'; endif; else: echo '<br>' . 'INFORMAÇÕES NÃO INSERIDAS !' . '<br>'; endif; } catch (Exception $e ) { echo $e->getMessage(); } } } Minha dúvida é pq do erro, na verdade não consigo identifica-lo. Alguém pode me ajudar a executar o código ? Mt Obg !
  23. artur0407

    PDO não retorna erro na conexão

    Boa noite; Estou realizando testes com a biblioteca PDO para banco de dados com PHP; Logo de inicio estou realizando minha conexão com o banco utilizando um código simples nativo da biblioteca. No entanto, mesmo errando o código propositalmente e tendo setado todos os possíveis erros e tratando com o bloco "try catch" o php não me retorna erro de nenhuma forma. Abaixo ambos os códigos; Primeiro sem erros: <?php ini_set('display_errors',true); ini_set('display_startup_erros',1); error_reporting(E_ALL); $username = 'root'; $password = ''; $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_CASE => PDO::CASE_NATURAL, PDO::ATTR_ORACLE_NULLS => PDO::NULL_EMPTY_STRING, PDO::ATTR_PERSISTENT => true ]; try { $conn = new PDO('mysql:host=localhost; dbname=test', $username, $password, $options); $conn->exec("set names utf8"); } catch(PDOException $e) { echo 'ERROR: ' . $e->getMessage(); } ?> Posteriormente com erro proposital (na string de conexão da classe PDO) <?php ini_set('display_errors',true); ini_set('display_startup_erros',1); error_reporting(E_ALL); $username = 'root'; $password = ''; $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_CASE => PDO::CASE_NATURAL, PDO::ATTR_ORACLE_NULLS => PDO::NULL_EMPTY_STRING, PDO::ATTR_PERSISTENT => true ]; try { $conn = new PDO('mysql:hst=localhost; dbname=test', $username, $password, $options); $conn->exec("set names utf8"); } catch(PDOException $e) { echo 'ERROR: ' . $e->getMessage(); } ?> Observem que no construtor do pdo, no lugar de host escrevi 'hst' e o php não retorna erros! Como sou novo aqui, me desculpem algum erro de formatação na mensagem, obrigado!
  24. Acho que estou com algum problema de herança ou coisa assim, eu não consigo chamar mais de um Container::getModel no meu Controller. Vou colocar o meu __construct aqui e o erro que ele me retorna PaginaController.php public function __construct() { parent:: __construct(); #se eu comentar e deixar apenas um ai ele funciona, mas quando tento fazer com mais de um ele da um erro $this->contato = Container::getModel("Contato"); $this->noticia = Container::getModel("Noticias"); $this->institucional = Container::getModel("Institucional"); $this->atuacao = Container::getModel("Atuacao"); $this->banner = Container::getModel("Banners"); } Container.php public static function getModel($model) { $objModel = "\\App\\Models\\".$model; return new $objModel(DataBase::getDataBase()); } Fatal error: Uncaught TypeError: Argument 1 passed to Core\BaseModel::__construct() must be an instance of PDO.
  25. Pessoal, tenho essa formula, aonde as notas n1, n2, n3, n4 são as notas bimestrais, e a nota n5 a de recuperação. Do jeito que está ele calcula as notas lançadas e divide pelo mesmo. Se lançou três notas ele divide por três, se lançou quatro divide por quatro . No caso a média estou setando 5. então por exemplo se o aluno tiver uma média abaixo eu lanço a nota n5 que é recuperação, e ela substitui a menor nota e recalcula a média final. Até aí funciona. Mas eu queria é que ao lançar a nota de recuperação, essa nota substituísse a média. que seria dos quatro bimestres <?php $n1 = $data["n1"]; $n2 = $data["n2"]; $n3 = $data["n3"]; $n4 = $data["n4"]; $n5 = $data["n5"];#recuperacao / nota extra $notas = [ $n1, $n2, $n3, $n4, $n5 ]; $notas = array_filter($notas, function( $nota ) { return !is_null($nota); }); //ordenamos em ordem crescente sort($notas, SORT_NUMERIC); //removemos a primeira nota do array ordenado, no caso a mais baixa $nota_mais_baixa = array_shift($notas); $fator_divisao = count($notas); if ($fator_divisao) { //calculamos a media aritmética $media = array_sum($notas) / $fator_divisao; //exibimos printf( 'Nota mais baixa: %.2f<br>Media: %.2f', $nota_mais_baixa, $media ); } ?>
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.