Jump to content

netocazuza

Members
  • Content count

    29
  • Joined

  • Last visited

Community Reputation

1 Comum

About netocazuza

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. netocazuza

    usuários com permissões

    Tenho um sistema de login funcionando, checando usuário e senha para autenticar. Tá tudo funcional até agora, mas surgiu a necessidade de criar permissões, e estou meio perdido. Já criei o item permissões na tabela, e tentei algumas implementações, mas até agora, nada funcionou. Ou não abre, ou abre permitindo tudo. Atualmente funciona assim: O arquivo abaixo verifica login e senha e dá acesso: <?php session_start(); include 'conexao/conexao.php'; $usuario = $_POST['usuario']; $senha = $_POST['senha']; $sql = "SELECT * FROM usuarioX WHERE usuarioX = '$usuario'"; $busca = mysqli_query($conexao, $sql); #Buscar senha $dados = mysqli_fetch_array($busca); $senhabd = $dados['senhaX']; $senhaVerificada = ($senha); #Verifica niveis de permissoes usuario #QUERO COLOCAR AS PERMISSÕES AQUI #Verifica se existe o usuario $linha = mysqli_affected_rows($conexao); if ($linha == 1) { if ($senhabd == $senhaVerificada) { $_SESSION['usuario'] = $usuario; header('Location: index.php'); } else { header('Location: login.php?id=1'); } } else { header('Location: login.php?id=2'); } ?> No código acima, caso usuário e senha confira, ele direciona para o index, do contrário volta para o login. O que pretendo é acrescentar permissões de professor, aluno e pai. Tipo se 1 nas permissões, abrir o index. Se 2 nas permissões, abrir o aluno.php, e se 3 nas permissões, abrir o pai.php. Logo abaixo vou listar a página index, pois acredito que nela tem alguma ação que tá impedindo essa minha lógica. A idéia seria ter uma página dessa (index) para cada usuário, ou uma idéia melhor, caso alguém tenha. <?php session_start(); if (!isset ($_SESSION['usuario']) == true) { unset($_SESSION['login']); header('Location: login.php'); } $logado = $_SESSION['usuario']; ?> <!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title> Dashboard - </title> <!-- Favicon --> <link href="./assets/img/brand/favicon.png" rel="icon" type="image/png"> <!-- Fonts --> <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700" rel="stylesheet"> <!-- Icons --> <link href="./assets/js/plugins/nucleo/css/nucleo.css" rel="stylesheet" /> <link href="./assets/js/plugins/@fortawesome/fontawesome-free/css/all.min.css" rel="stylesheet" /> <!-- CSS Files --> <link href="./assets/css/argon-dashboard.css?v=1.1.0" rel="stylesheet" /> </head> <body> <nav class="navbar navbar-vertical fixed-left navbar-expand-md navbar-light bg-white" id="sidenav-main"> <div class="container-fluid"> <!-- Toggler --> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#sidenav-collapse-main" aria-controls="sidenav-main" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <!-- Brand --> <a class="navbar-brand pt-0" href="./index.html"> <img src="./assets/img/brand/blue.png" class="navbar-brand-img" alt="..."> </a> <!-- User --> <ul class="nav align-items-center d-md-none"> <li class="nav-item dropdown"> <a class="nav-link nav-link-icon" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="ni ni-bell-55"></i> </a> <div class="dropdown-menu dropdown-menu-arrow dropdown-menu-right" aria-labelledby="navbar-default_dropdown_1"> <a class="dropdown-item" href="#">Action</a> <a class="dropdown-item" href="#">Another action</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Something else here</a> </div> </li> <li class="nav-item dropdown"> <a class="nav-link" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <div class="media align-items-center"> <span class="avatar avatar-sm rounded-circle"> <img alt="Image placeholder" src="./assets/img/theme/team-1-800x800.jpg "> </span> </div> </a> <div class="dropdown-menu dropdown-menu-arrow dropdown-menu-right"> <div class=" dropdown-header noti-title"> <h6 class="text-overflow m-0">Welcome!</h6> </div> <div class="dropdown-divider"></div> <a href="#!" class="dropdown-item"> <i class="ni ni-user-run"></i> <span>Logout</span> </a> </div> </li> </ul> <!-- Collapse --> <div class="collapse navbar-collapse" id="sidenav-collapse-main"> <!-- Collapse header --> <div class="navbar-collapse-header d-md-none"> <div class="row"> <div class="col-6 collapse-brand"> <a href="./index.html"> <img src="./assets/img/brand/blue.png"> </a> </div> <div class="col-6 collapse-close"> <button type="button" class="navbar-toggler" data-toggle="collapse" data-target="#sidenav-collapse-main" aria-controls="sidenav-main" aria-expanded="false" aria-label="Toggle sidenav"> <span></span> <span></span> </button> </div> </div> </div> <!-- Form --> <form class="mt-4 mb-3 d-md-none"> <div class="input-group input-group-rounded input-group-merge"> <input type="search" class="form-control form-control-rounded form-control-prepended" placeholder="Search" aria-label="Search"> <div class="input-group-prepend"> <div class="input-group-text"> <span class="fa fa-search"></span> </div> </div> </div> </form> <!-- Navigation --> <ul class="navbar-nav"> <li class="nav-item class=" active" "> <a class=" nav-link active " href=" index.php"> <i class="ni ni-tv-2 text-primary"></i> Dashboard </a> </li> <li class="nav-item"> <a class="nav-link " href="#"> <i class="ni ni-satisfied text-orange"></i> Usuarios </a> </li> <li class="nav-item" style="margin-left: 10px"> <a class="nav-link " href="tipoUsuario.php"> Cadastrar Tipo Usuario </a> </li> <li class="nav-item" style="margin-left: 10px"> <a class="nav-link " href="usuario_hpac.php"> Cadastrar Usuario </a> </li> <li class="nav-item"> <a class="nav-link " href="#"> <i class="ni ni-shop text-blue"></i> Empresas </a> </li> <li class="nav-item" style="margin-left: 10px"> <a class="nav-link " href="ramoAtividade.php"> Cadastrar Ramo de Atividade </a> </li> <li class="nav-item" style="margin-left: 10px"> <a class="nav-link " href="formularioPJ.php"> Cadastrar Empresa </a> </li> <li class="nav-item"> <a class="nav-link " href="#"> <i class="ni ni-single-02 text-yellow"></i> Cliente </a> </li> <li class="nav-item" style="margin-left: 10px"> <a class="nav-link " href="formularioCliente.php"> Cadastrar Cliente </a> </li> <li class="nav-item"> <a class="nav-link " href="#"> <i class="ni ni-bullet-list-67 text-red"></i> Listar Tabelas </a> </li> <li class="nav-item" style="margin-left: 10px"> <a class="nav-link " href="listarPJ.php"> Listar Empresas </a> </li> <li class="nav-item"> <a class="nav-link" href="./examples/login.html"> <i class="ni ni-key-25 text-info"></i> Login </a> </li> <li class="nav-item"> <a class="nav-link" href="./examples/register.html"> <i class="ni ni-circle-08 text-pink"></i> Register </a> </li> </ul> <!-- Divider --> <!-- Heading --> <!-- Navigation --> </div> </div> </nav> <div class="main-content"> <!-- Navbar --> <nav class="navbar navbar-top navbar-expand-md navbar-dark" id="navbar-main"> <div class="container-fluid"> <!-- Brand --> <a class="h4 mb-0 text-white text-uppercase d-none d-lg-inline-block" href="./index.html">Dashboard</a> <!-- Form --> <!-- User --> <ul class="navbar-nav align-items-center d-none d-md-flex"> <li class="nav-item dropdown"> <a class="nav-link pr-0" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <div class="media align-items-center"> <span class="avatar avatar-sm rounded-circle"> <img alt="Image placeholder" src="./assets/img/theme/team-4-800x800.jpg"> </span> <div class="media-body ml-2 d-none d-lg-block"> <span class="mb-0 text-sm font-weight-bold"><?php echo $logado ?></span> </div> <div class="media-body ml-2 d-none d-lg-block"> <span class="mb-0 text-sm font-weight-bold"><?php echo $nivel ?></span> </div> </div> </a> <div class="dropdown-menu dropdown-menu-arrow dropdown-menu-right"> <div class=" dropdown-header noti-title"> <h6 class="text-overflow m-0">Bem-vindo</h6> </div> <div class="dropdown-divider"></div> <a href="logout.php" class="dropdown-item"> <i class="ni ni-user-run"></i> <span>Logout</span> </a> </div> </li> </ul> </div> </nav> <!-- End Navbar --> <!-- Header --> <div class="header bg-gradient-primary pb-8 pt-5 pt-md-8"> <div class="container-fluid"> <div class="header-body"> <!-- Card stats --> <div class="row"> <!-- inicio primeiro quadrado --> <div class="col-xl-3 col-lg-6"> <div class="card card-stats mb-4 mb-xl-0"> <div class="card-body"> <div class="row"> <div class="col"> <h5 class="card-title text-uppercase text-muted mb-0">Empresas</h5> <?php include 'conexao/conexao.php'; $sql = "SELECT COUNT(id_empresa) as quantidade FROM empresa"; $busca = mysqli_query($conexao, $sql); $dados = mysqli_fetch_array($busca); $quantidade = $dados['quantidade']; ?> <span class="h2 font-weight-bold mb-0"><?php echo $quantidade ?></span> </div> <div class="col-auto"> <div class="icon icon-shape bg-danger text-white rounded-circle shadow"> <i class="fas fa-chart-bar"></i> </div> </div> </div> <p class="mt-3 mb-0 text-muted text-sm"> <span class="text-nowrap"></span> </p> </div> </div> </div> <!-- fim primeiro quadrado --> <!-- inicio segundo quadrado --> <div class="col-xl-3 col-lg-6"> <div class="card card-stats mb-4 mb-xl-0"> <div class="card-body"> <div class="row"> <div class="col"> <h5 class="card-title text-uppercase text-muted mb-0">Usuarios</h5> <?php include 'conexao/conexao.php'; $sql = "SELECT COUNT(id_usuario) as quantidade FROM usuario_hpac"; $busca = mysqli_query($conexao, $sql); $dados = mysqli_fetch_array($busca); $quantidade = $dados['quantidade']; ?> <span class="h2 font-weight-bold mb-0"><?php echo $quantidade ?></span> </div> <div class="col-auto"> <div class="icon icon-shape bg-danger text-white rounded-circle shadow"> <i class="fas fa-chart-pie"></i> </div> </div> </div> <p class="mt-3 mb-0 text-muted text-sm"> <span class="text-nowrap"></span> </p> </div> </div> </div> <!-- fim segundo quadrado --> <div class="col-xl-3 col-lg-6"> <div class="card card-stats mb-4 mb-xl-0"> <div class="card-body"> <div class="row"> <div class="col"> <h5 class="card-title text-uppercase text-muted mb-0">Alugados</h5> <?php include 'conexao/conexao.php'; $sql = "SELECT COUNT(id_status_imovel) as quantidade FROM status_imovel WHERE status_imovel = 'Aluguel'"; $busca = mysqli_query($conexao, $sql); $dados = mysqli_fetch_array($busca); $qtdaluguel = $dados['quantidade']; ?> <span class="h2 font-weight-bold mb-0"><?php echo $qtdaluguel ?></span> </div> <div class="col-auto"> <div class="icon icon-shape bg-yellow text-white rounded-circle shadow"> <i class="fas fa-users"></i> </div> </div> </div> <p class="mt-3 mb-0 text-muted text-sm"> <?php $sql3 = "SELECT SUM(valor_negocio)as valortotal FROM status_imovel WHERE status_imovel = 'Aluguel'"; $query = mysqli_query($conexao, $sql3); $dados3 = mysqli_fetch_array($query); $totalAluguel = $dados3['valortotal']; $totalAluguel; $porcento = $totalAluguel * 0.10; ?> <span class="text-success mr-2"><i class="fas fa-arrow-up"></i><?php echo number_format($porcento, 2, ',', '.') ?></span> <span class="text-nowrap">Lucro Alugueis</span> </p> </div> </div> </div> <div class="col-xl-3 col-lg-6"> <div class="card card-stats mb-4 mb-xl-0"> <div class="card-body"> <div class="row"> <div class="col"> <h5 class="card-title text-uppercase text-muted mb-0">Lucro Bruto</h5> <?php $totalbruto = $porcento + $total; ?> <span class="h2 font-weight-bold mb-0"><?php echo number_format($totalbruto, 2, ',', '.') ?></span> </div> <div class="col-auto"> <div class="icon icon-shape bg-info text-white rounded-circle shadow"> <i class="fas fa-percent"></i> </div> </div> </div> <p class="mt-3 mb-0 text-muted text-sm"> <?php if($totalbruto > 0) {?> <span class="text-success mr-2"><i class="fas fa-arrow-up"></i>Saldo Positivo</span> <?php } else {?> <span class="text-danger mr-2"><i class="fas fa-arrow-down"></i>Saldo Negativo</span> <?php }?> </p> </div> </div> </div> </div> </div> </div> </div> </body> </html> Diante disso, quero que alguém poste aqui uma sugestão contemplando os dois códigos, pois acredito que na primeira verificação usando AND ou WHERE eu estou acertando, mas o grande problema está na abertura da próxima página, que não estou conseguindo fazer. Acho que até checo a tabela, mas não estou conseguindo direcionar para a página certa.
  2. netocazuza

    gravar dados php com mysql

    Tenho um sistema em php que grava os dados da seguinte forma: Existe um formulário em html, que captura os dados, e um arquivo de inserção em php que recebe os dados do formulário, e grava no banco. Tudo isso está funcional, e vai sendo ampliado, de acordo com a necessidade, então vou tentar ilustrar o código aqui: $numero1 = $_POST['numero1']; . . . $numero100 = $POST['numero100']; Esses dados vem do formulário, e até esse número 100, está funcional. Após receber esses números, é preparado um SQL para inserção no banco, que fica mais ou menos assim: $sql = "insert into tabela(numero1, ...,numero100) values ('$numero1', ..., 'numero100')"; $con->exec($sql); Tudo isso está funcionando, e deu tudo certo, até aproximadamente o registro 100 (não sei o número exato) pois é uma necessidade do sistema que ele seja assim, e as variáveis sejam criadas, quando a ocasião se apresenta.Ocorre, que de uns dias pra cá, não consigo mais criar nenhuma variável, e o sistema travou. Depois de muitos testes, descobri que essa linha de inserção no $sql, fica como uma linha inteira e única, e é exatamente essa a limitação, que é 3.000 caracteres, espaços ou colunas, aparentemente. O travamento decorre disso. Tudo que for feito à partir da linha 3.000, é simplesmente ignorado, e gera um erro no sistema.Normalmente escrevo o código diretamente do terminal linux, usando o comando vim, salvo e já testo no navegador, e a minha dúvida é se essa limitação é do comando vim, do mysql, ou do PHP, e como fazer para contornar isso?Uso Linux Ubuntu 16.04 LTS, PHP 7 e mysql com phpmyadmin. Uma outra particularidade, é que para ser mais produtivo, escrevo o código diretamente no servidor em produção, via terminal com o comando vim.Gostaria apenas de uma forma de quebrar essa linha, de modo que essa inserção continue sendo feita da mesma maneira.
  3. netocazuza

    PHP NÃO FUNCIONA NO SERVIDOR

    Tenho um servidor linux instalado em casa, com ubuntu 16.04, apache 2 e php 7.0; e uso ele apenas para testar sites. Faço todo o código no servidor (pastas e páginas), e depois, para testar, acesso de outro pc, pelo navegador, e ip do servidor (http://192.168.0.20/pasta_do_site) e dá tudo certo quando uso html, css, e até java, porém, quando uso php, sempre aparece um erro 500 e nada funciona. Já aconteceu até de eu pegar a pasta inteira com problema, subir numa hospedagem, e tudo funcionar normalmente, então o problema com o código está descartado. É alguma configuração do servidor. Sei que pode estar faltando alguma coisa, mas já fiz vários testes (htaccess, sites-availables, etc), e nada deu retorno até agora. Alguém tem uma dica do que pode estar ocorrendo?
  4. netocazuza

    fazer dois testes antes de gravar

    Tenho uma rotina em php que está funcionando, gravando os dados numa tabela. Agora surgiu a necessidade de fazer dois testes antes da gravação, e eu não estou conseguindo ter idéia de como fazer, por isso vou postar no próprio código pra ver se entendem. O primeiro teste, é ver se o número escolhido, já foi selecionado (variável numero), e caso isso ocorra, não gravar. O outro teste é impedir que o mesmo usuário (usuário apostador)faça mais de uma aposta. Segue código: <?php require_once 'init.php'; // pega os dados do formuário $data_hora = isset($_POST['data_hora']) ? $_POST['data_hora'] : null; $apostador = isset($_POST['apostador']) ? $_POST['apostador'] : null; // quero que esse apostador não se repita. Se já estiver na tabela, avisar e sair. $telefone = isset($_POST['telefone']) ? $_POST['telefone'] : null; $numero = isset($_POST['numero']) ? $_POST['numero'] : null; // quero que cheque esse número na tabela existente, e caso exista, retornar para inserir outro. // validação (bem simples, só pra evitar dados vazios) if (empty($data_hora) || empty($apostador) || empty($telefone) || empty($numero)) { echo "Volte e preencha todos os campos"; exit; } $hoje = date("d-m-Y H:i"); $limite = ('08-03-2019 16:35'); if (strtotime($hoje) >= strtotime($limite)){ echo "Esgotado o horario limite. Aguarde para o próximo sorteio!"; exit; } // a data vem no formato dd/mm/YYYY // então precisamos converter para YYYY-mm-dd // insere no banco $PDO = db_connect(); // Acredito que esse teste deva ser feito aqui, antes de gravar, mas é só um palpite, pois tô mais perdido do que padre (alguns) em boate //verificar se apostador e numero já existem na tabela, e caso exista, retornar o fluxo $sql = "INSERT INTO palpites(data_hora, apostador, telefone, numero) VALUES(:data_hora, :apostador, :telefone, :numero)"; $stmt = $PDO->prepare($sql); $stmt->bindParam(':data_hora', $data_hora); $stmt->bindParam(':apostador', $apostador); $stmt->bindParam(':telefone', $telefone); $stmt->bindParam(':numero', $numero); if ($stmt->execute()) { header('Location: index.php'); } else { echo "Erro ao cadastrar"; print_r($stmt->errorInfo()); }
  5. netocazuza

    gerar fpdf numa nova aba ou janela

    Olá, bom dia a todos. Estou criando um sisteminha simples para geração de um documento em pdf. Para isso, estou juntando partes de vários projetos em um só, e o meu problema no momento é bem simples. O sistema tá funcionando, porém gera o pdf na mesma janela, sobre a tela de cadastramento, e eu gostaria que abrisse numa nova aba ou janela, pra que a tela de cadastramento permanecesse sempre ativa. Atualmente está assim: O arquivo que grava os registros termina com a instrução header('Location: tela_cadastramento.php'); Isso é uma rotina pronta, que faz com que ao cadastrar um registro, já volte nesse tela, com os inputs limpos, aguardando novos registros. Fiz essa rotina primeiro, e tá funcional. Depois disso, peguei uma rotina pronta para gerar o PDF com fpdf, e criei uma function com essa rotina, que termina com: $pdf->Output(); e até aí, tá tudo normal, pois é exatamente isso que quero, apenas abrir o pdf na tela, e o usuário decide o que vai fazer. Salvar, imprimir, ou os dois. Está funcionando, pois abre o pdf, tudo certinho. O único problema é que abre a janela do pdf "sobre" a janela ativa do sistema, e com isso gera um warning pois impede que a instrução do header seja cumprida. Já tentei mudar o local da chamada da função do fpdf, mas não resolveu, então gostaria de passar uma instrução para abrir o fpdf em outra aba ou janela, mas não sei como devo fazer, uma vez que na ordem do sistema, é feita uma gravação no banco, e a geração do pdf é feita de forma automática, pegando carona nessa gravação. Estou falando isso, pois se fosse uma botão específico gerar pdf, sei que teria como fazer usando target, ou onclick. Quero fazer algo equivalente, dentro da função, ou do comando de output. Será que me fiz entender, e alguém pode me ajudar?
  6. netocazuza

    somar dois input text

    Obrigado pela ajuda Matheus. Era exatamente esse o problema e foi resolvido. Com relação à postagem, vou procurar observar melhor a relação entre os temas, e tentar postar no local apropriado. Me desculpe por ora, e releve, pois, "qualquer caminho é caminho pra quem se encontra perdido".
  7. netocazuza

    somar dois input text

    Tenho um input text no meu form, que recebe um valor do banco de dados. Isso já está funcionando perfeitamente. Criei uma função para somar o valor de um outro campo, com esse que trás da tabela, e está apenas concatenando. O que posso estar errando? Se como exemplo, eu trago do banco o valor 50, e depois digito 50 nesse outro campo que faz a soma, ela passa a mostrar 5050, acrescentando sempre o último valor digitado à esquerda do valor que veio da tabela, quando o normal seria exibir o resultado da soma. Vejam a função que deveria somar: function onSomaTotal(){ var valorAbastecimento = document.getElementById("valorAbastecimento").value; var totalValor = document.getElementById("totalValor").value; document.getElementById("totalValor").value = (valorAbastecimento + totalValor); }
  8. netocazuza

    listar ultimo registro da tabela

    Arrumei um jeito aqui Michell. De qualquer forma obrigado pela ajuda. Só ainda não tá completo, pois estou usando PDO, e tendo que listar os dados da minha conexão ao BANCO, dentro do próprio código, mas tá funcionando. Depois vejo um jeito de fazer isso usando um arquivo de conexão. Por enquanto, resolvi o meu problema, e vou deixar a solução aqui, caso mais alguém precise. Primeiro fiz uma consulta específica no banco: <?php $pdo = new PDO('mysql:dbname=nomeBanco;host=localhost', 'usuario_banco', 'senha_banco'); $lastKmAbastecimento = $pdo->query("SELECT * FROM combustivel ORDER BY kmAbastecimento DESC LIMIT 1", PDO::FETCH_ASSOC)->fetch(); ?> Feita essa consulta, chamei os dados do $lastKmAbastecimento lá no input, e retorna sempre o último registro salvo: <input type="text" name = "kmAbastecimento" id = "kmAbastecimento" placeholder = "KM Anterior" value = "<?php echo $lastKmAbastecimento['kmAbastecimento']; ?>">
  9. netocazuza

    listar ultimo registro da tabela

    Não Michell. A dificuldade está sendo em preencher esse input com os valores da tabela que já existe. Com o while, e estou listando os valores, já. Gostaria de lançar o último valor da tabela dentro desse input box, e essa pesquisa que não tô conseguindo. Listo os valores na tela, com o while, agora como pegar o último valor inserido e lançar no input, que não consigo.
  10. netocazuza

    listar ultimo registro da tabela

    Tenho um tabela que guarda os abastecimentos de um veículo e gostaria de fazer o seguinte código funcionar. Preciso pegar o último registro com a quilometragem do odômetro e já trazer pro input text específico, chamado kmAnterior. Tem que ser o último campo, pra eu descobrir o caminho percorrido. Exemplo: kmAnterior 115, kmAtual 215. Cálculo (kmAtual - kmAnterior) = 100 km. Então o atual eu vou digitar, e gostaria que o anterior buscasse automaticamente na tabela (último registro gravado). Estou fazendo de uma forma que não está funcionando: <input type="text" name = "kmAnterior" placeholder = "KM Anterior" value = "<?php echo $linha['kmAbastecimento']; ?>"> Onde esse $linha é a forma que estou usando pra preencher uma tabela (usando while). Quero conseguir pegar sempre o último valor da tabela e lançar diretamente nesse campo, de uma forma mais limpa e simples possível, pois a tabela tem uma série de outros cálculos.
  11. netocazuza

    codigo adaptado não funciona

    Gostaria que alguém me ajudasse a encontrar erro num código. Estou fazendo um curto na net, e tentando adaptar o código que funciona para ir aprimorando a aprendizagem. Então vou colocar dois códigos aqui, onde um funciona o outro não. O que funciona é o do curso com mais campos. O que fiz foi apenas adaptar esse código que funciona para uma quantidade bem menor, e ver se funciona. Os dois códigos abre o formulário, aparentemente consultam o banco com sucesso, porém só o original está alterando, certamente por algum erro meu. Mas já olhei trocentas vezes, postei dúvida lá no curso, e o cara não responde, então tô parado na aprendizagem por conta disso. Basicamente é um formulário de cadastro de transportadoras onde o usuário altera os dados de uma transportadora através desse formulário. Esse tá funcionando tudo certinho. Tentei reproduzir esse mesmo formulário, porém apenas com dois campos (cidade e estado), e mesmo assim não funciona. Lista certinho, mas não altera, por isso acho que é um erro simples. Segue os dois códigos pra que comparem: CÓDIGO QUE FUNCIONA: <?php require_once("conexao/conexao.php"); ?> <?php if (isset($_POST["nometransportadora"])){ $nome = utf8_decode($_POST["nometransportadora"]); $endereco = utf8_decode($_POST["endereco"]); $cidade = utf8_decode($_POST["cidade"]); $estado = $_POST["estados"]; $cep = $_POST["cep"]; $cnpj = $_POST["cnpj"]; $telefone = $_POST["telefone"]; $tID = $_POST["transportadoraID"]; // CRIAR O OBJETO PARA ALTERAR $alterar = "UPDATE transportadoras "; $alterar .= "SET "; $alterar .= "nometransportadora = '{$nome}', "; $alterar .= "endereco = '{$endereco}', "; $alterar .= "cidade = '{$cidade}', "; $alterar .= "estadoID = {$estado}, "; $alterar .= "cep = '{$cep}', "; $alterar .= "cnpj = '{$cnpj}', "; $alterar .= "telefone = '{$telefone}' "; $alterar .= "WHERE transportadoraID = {$tID}"; $operacao_alterar = mysqli_query($conecta, $alterar); if (!$operacao_alterar){ die("Erro na alteração!"); }else { header("location: listagem2.php"); } } // Consulta a tabela de transportadoras. $tr = "SELECT * "; $tr .= "FROM transportadoras "; if (isset($_GET["codigo"])){ $id = $_GET["codigo"]; $tr .= "WHERE transportadoraID = {$id} "; }else { $tr .= "WHERE transportadoraID = 1 "; } $con_transportadora = mysqli_query($conecta, $tr); if (!$con_transportadora){ die("Erro na consulta"); } $info_transportadora = mysqli_fetch_assoc($con_transportadora); // Consulta aos estados $estados = "SELECT * "; $estados .= "FROM estados "; $lista_estados = mysqli_query($conecta, $estados); if (!$lista_estados){ die("erro no banco"); } ?> <!doctype html> <html> <head> <meta charset="UTF-8"> <title>Curso PHP INTEGRACAO</title> <!-- estilo --> <link href="_css/estilo.css" rel="stylesheet"> <link href="_css/alteracao.css" rel="stylesheet"> </head> <body> <?php include_once("_incluir/topo.php"); ?> <main> <div id="janela_formulario"> <form action="alteracao.php" method = "post"> <h2>Alteração de Transportadoras</h2> <label for="nometransportadora">Nome da Transportadora</label> <input type = "text" value = "<?php echo utf8_encode( $info_transportadora["nometransportadora"]) ?>" name = "nometransportadora" id = "nometransportadora"> <label for="endereco">Endereço</label> <input type = "text" value = "<?php echo utf8_encode( $info_transportadora["endereco"]) ?>" name = "endereco" id = "endereco"> <label for="cidade">Cidade</label> <input type = "text" value = "<?php echo utf8_encode( $info_transportadora["cidade"]) ?>" name = "cidade" id = "cidade"> <label for="estados">Estados</label> <select id = "estados" name = "estados"> <?php $meuestado = $info_transportadora["estadoID"]; while ($linha = mysqli_fetch_assoc($lista_estados)){ $estado_principal = $linha["estadoID"]; if ($meuestado == $estado_principal){ ?> <option value="<?php echo $linha["estadoID"] ?>" selected> <?php echo utf8_encode($linha ["nome"]) ?> </option> <?php } else { ?> <option value="<?php echo $linha["estadoID"] ?>"> <?php echo utf8_encode($linha ["nome"]) ?> </option> <?php } } ?> </select> <label for="cep">CEP</label> <input type = "text" value = "<?php echo ( $info_transportadora["cep"]) ?>" name = "cep" id = "cep"> <label for="telefone">Telefone</label> <input type = "text" value = "<?php echo utf8_encode( $info_transportadora["telefone"]) ?>" name = "telefone" id = "telefone"> <label for="cnpj">CNPJ</label> <input type = "text" value = "<?php echo utf8_encode( $info_transportadora["cnpj"]) ?>" name = "cnpj" id = "cnpj"> <input type = "hidden" name = "transportadoraID" value = "<?php echo $info_transportadora["transportadoraID"] ?>"> <input type = "submit" value="Confirmar Alteração"> </form> </div> </main> <?php include_once("_incluir/rodape.php"); ?> </body> </html> CÓDIGO QUE NÃO FUNCIONA. (Lista tudo certinho, mas não altera, nem traz o estádo pré-checado). <?php require_once("conexao/conexao.php"); ?> <?php if( isset($_POST["nomeCidade"]) ) { $nomeCidade = utf8_decode($_POST["nomeCidade"]); $estado = $_POST["estados"]; $cID = $_POST["cidadeID"]; // Objeto para alterar $alterar = "UPDATE cidades "; $alterar .= "SET "; $alterar .= "nomeCidade = '{$nomeCidade}', "; $alterar .= "estadoID = {$estado} "; $alterar .= "WHERE cidadeID = {$cID} "; $operacao_alterar = mysqli_query($conecta, $alterar); if(!$operacao_alterar) { die("Erro na alteracao"); } else { header("location:alterarCidades.php"); } } // Consulta a tabela de cidades $tr = "SELECT * "; $tr .= "FROM cidades "; if(isset($_GET["codigo"]) ) { $id = $_GET["codigo"]; $tr .= "WHERE cidadeID = {$id} "; } else { $tr .= "WHERE cidadeID = 1 "; } $con_cidade = mysqli_query($conecta,$tr); if(!$con_cidade) { die("Erro na consulta"); } $info_cidade = mysqli_fetch_assoc($con_cidade); // consulta aos estados $estados = "SELECT * "; $estados .= "FROM estados "; $lista_estados = mysqli_query($conecta, $estados); if(!$lista_estados) { die("erro no banco"); } ?> <!doctype html> <html> <head> <meta charset="UTF-8"> <title>Alteração Cidades</title> <!-- estilo --> <link href="_css/estilo.css" rel="stylesheet"> <link href="_css/alteracao.css" rel="stylesheet"> </head> <body> <?php include_once("_incluir/topo.php"); ?> <main> <div id="janela_formulario"> <form action="alteracaoCidades.php" method="post"> <h2>Alteração de Cidades</h2> <label for="nomeCidade">Nome da Cidade</label> <input type="text" value="<?php echo utf8_encode($info_cidade["nomeCidade"]) ?>" name="nomeCidade" id="nomeCidade"> <label for="estados">Estados</label> <select id="estados" name="estados"> <?php $meuestado = $info_cidade["estadoID"]; while($linha = mysqli_fetch_assoc($lista_estados)) { $estado_principal = $linha["estadoID"]; if($meuestado == $estado_principal) { ?> <option value="<?php echo $linha["estadoID"] ?>" selected> <?php echo utf8_encode($linha["nome"]) ?> </option> <?php } else { ?> <option value="<?php echo $linha["estadoID"] ?>" > <?php echo utf8_encode($linha["nome"]) ?> </option> <?php } } ?> </select> <input type="hidden" name="cidadeID" value="<?php echo $info_cidade["cidadeID"] ?>"> <input type="submit" value="Confirmar alteração"> </form> </div> </main> <?php include_once("_incluir/rodape.php"); ?> </body> </html>
  12. netocazuza

    mostrar ou não campo de texto

    Estou trabalhando num formulário de cadastro onde aparece o número da certidão de nascimento. Como já devem saber, existe o antigo formato de certidões, com nome do cartório, termo, livro e folha (4 campos), e um formato novo de campo único, com 32 dígitos, onde estão implícitas todas essas informações. Coloquei no meu formulário apenas um campo de texto para colocar esses 32 dígitos da nova certidão, e apenas um checkbox chamado certidão antiga, que quando clicado (checado) irá fazer aparecer os quatro campos para preenchimento com os dados das certidões antigas. Pensei em colocar hidden no campo, e através de um if, mudar para text quando checado. Mesmo pra essa idéia simples, não consigo achar a sintaxe. Alguém tem uma solução pra esse problema?
  13. netocazuza

    incluir data e hora nas tabelas

    Exatamente isso que tava precisando Bruno. Valeu.
  14. netocazuza

    incluir data e hora nas tabelas

    Tenho um projeto, já funcionando, com vários bancos de dados e várias tabelas. No momento, surgiu a necessidade de registar data e hora da gravação de dados em algumas tabelas. Só preciso que fique registrado na tabela a data e hora das gravações. Fui em cada uma delas e criei um campo do tipo datetime e estou tentando inserir um NOW() na gravação, mas não estou acertando com a sintaxe. Alguém tem uma sugestão? Basta registrar a data e hora na tabela, sem a necessidade de acrescentar textbox no formulário. Exemplo, eu tenho um formulário onde se registra os turnos (manhã, tarde e noite). Tenho apenas um textbox no formulário chamado turno, e um código que guarda esse valor (varchar) numa tabela chamada junho, que só tinha originalmente um campo chamado turno, funcionando. Criei mais um campo chamado cadastramento, do tipo datetime, pra guardar data e hora da gravação desse novo turno, e não estou acertando com a sintaxe.
  15. netocazuza

    [Resolvido] listar dados numa combobox

    Verdade Gabriel. Obrigado pela dica. Como eu só precisava mostrar os dados em um, ou outro, exclui o list, e começou a listar na combobox. Tá ok agora.
×

Important Information

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