Jump to content
jxcostas

Restringir insert

Recommended Posts

Bom dia Pessoal!

 

 

Estou adaptando um codigo existente de votação que adiciona um voto para cada curso selecionado para pegar os dados do usuario logado no sistema atraves (.$_SESSION['nome']."', e .$_SESSION['email']."',) e adicionar na tabela incricoes com o curso selecionado da tabela 

 

Gostaria de restringir a votação somente 20 registros por curso(id)

---------

<?php
session_start();
include_once("conexao.php");
//Verificar se está vindo a variável id pela URL
if(isset($_GET['id'])){
	if(isset($_COOKIE['voto_cont'])){
		$_SESSION['msg'] = "<div class='alert alert-danger'>Você não pode mais inscrever-se!</div>";
		header("Location: cursos.php");
	}else{
		setcookie('voto_cont', $_SERVER['REMOTE_ADDR'], time() + 5);
		$result_produto = "UPDATE produtos SET qnt_voto=qnt_voto + 1 WHERE id ='".$_GET['id']."'" ;
		$resultado_produto = mysqli_query($conn, $result_produto);
		                                          
		       //Inserir na tabela incricoes nome do curso selecionado, nome e email do usuario logado
               // var_dump($dados);
                $result1_usuario = "INSERT INTO inscricoes (nome_curso, nome_usuario, email) VALUES (
						'" .$_GET['id']. "',
						'" .$_SESSION['nome_usuario']. "',
						'" .$_SESSION['email']. "'
						)";
		$resultado1_usario = mysqli_query($conn, $result1_usuario);		
		     
		   		
		if(mysqli_affected_rows($conn)){
			$_SESSION['msg'] = "<div class='alert alert-success'>Inscrição efetuada com sucesso!</div>";
			header("Location: cursos.php");
		}else{
			$_SESSION['msg'] = "<div class='alert alert-danger'>Erro ao inscrever-se!</div>";
			header("Location: cursos.php");
		}
}
} 

              

Share this post


Link to post
Share on other sites
Em 11/05/2019 at 09:54, marcosmarcolin disse:

Antes de inserir a inscrição, faça um consulta pelo ID do curso, depois você verifica, se for mair ou igual a 20 você retorna um erro.

 

Use COUNT do SQL.

 

<?php

session_start();
include_once("conexao.php");
//Verificar se está vindo a variável id pela URL
if (isset($_GET['id'])) {
    if (isset($_COOKIE['voto_cont'])) {
        $_SESSION['msg'] = "<div class='alert alert-danger'>Você não pode mais inscrever-se!</div>";
        header("Location: cursos.php");
    } else {
        //Pesquisar se o produto está cadastrado no banco de dados
        $result_prod = "SELECT * FROM produtos WHERE id ='" . $_GET['id'] . "'";
        $resultado_prod = mysqli_query($conn, $result_prod);

        if (($resultado_prod) AND ( $resultado_prod->num_rows != 0)) {
            $row_prod = mysqli_fetch_assoc($resultado_prod);
            //Verificar se o produto já tem 20 votos
            if ($row_prod['qnt_voto'] <= 5) {
                setcookie('voto_cont', $_SERVER['REMOTE_ADDR'], time() + 1);
                $result_produto = "UPDATE produtos SET qnt_voto=qnt_voto + 1 WHERE id ='" . $_GET['id'] . "'";
                $resultado_produto = mysqli_query($conn, $result_produto);

                //Inserir na tabela incricoes nome do curso selecionado, nome e email do usuario logado
                // var_dump($dados);
                $result1_usuario = "INSERT INTO inscricoes (nome_curso, nome_usuario, email) VALUES (
						'" . $_GET['id'] . "',
						'" . $_SESSION['nome_usuario'] . "',
						'" . $_SESSION['email'] . "'
						)";
                $resultado1_usario = mysqli_query($conn, $result1_usuario);


                if (mysqli_affected_rows($conn)) {
                    $_SESSION['msg'] = "<div class='alert alert-success'>Inscrição efetuada com sucesso!</div>";
                    header("Location: cursos.php");
                } else {
                    $_SESSION['msg'] = "<div class='alert alert-danger'>Erro ao inscrever-se!</div>";
                    header("Location: cursos.php");
                }
            } else {
                $_SESSION['msg'] = "<div class='alert alert-danger'>Você não pode mais inscrever-se, Limite de 20 vagas do curso !</div>";
                header("Location: cursos.php");
            }
        }
    }
} 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By henriquers
      Estou com um problema com o Select2, ele tem um campo de busca mas não esta filtrando corretamente e não estou entendo o motivo, sem utilizar o AJAX colocando os options manualmente ele funciona corretamente, mas trazendo os dados via AJAX ele não funciona o campo de busca.
      Se aguem poder me dar uma luz agradeço a ajuda.
       

       
      Nessa imagem estou tentando filtrar apenas para os itens que tenha LUVA na descrição, mas não funciona, posso colocar qual quer coisa que ele não faz o filtro
       
      Abaixo segue meu codigo
       
      HTML
      <!DOCTYPE HTML PUBLIC> <HTML> <HEAD> <TITLE> Select2 </TITLE> <link href="select2/select2.css" rel="stylesheet" type="text/css" /> <script src="https://code.jquery.com/jquery-latest.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/js/i18n/pt-BR.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/js/select2.js"></script> <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/css/select2.css" rel="stylesheet"/> <script> $(document).ready(function(){ $("#selUser").select2({ language: "pt-br", ajax: { url: "get_dados.php", type: "GET", dataType: 'json', delay: 200, data: function (params) { return { q: params.term, // search term page: params.page }; }, processResults: function (response) { return { results: response }; }, cache: true }, width: "20%", closeOnSelect: true, }); }); </script> </head> <body> <select id='selUser' style='width: 200px;'> <option value='0'>- Search user -</option> </select> </body> </html> get_dados.php
      <?php include './conn_orcl.php'; $select="SELECT PRO_CODPRO PRODUTO,TRIM(PRO_DESCRI) DESCRICAO FROM F_PRODS WHERE PRO_LOCEST='ALMOX' AND PRO_STATUS = 'AT' ORDER BY DESCRICAO"; $parse=oci_parse($conn,$select); oci_execute($parse); $data = array(); while($row=oci_fetch_array($parse)){ $data[] = array("id"=>$row['PRODUTO'], "text"=>$row['PRODUTO']." - ".$row['DESCRICAO']); }; echo json_encode($data); ob_end_flush(); oci_free_statement($parse); oci_close($conn); ?>  
    • By Jack Oliveira
      Boa noite pessoal
       
       
      Quero fazer uma verificação em tempo real no banco de dados antes de clicar para cadastra, ver se o nome que esta no input name="nome_empresa_link"   ver se ele já existe no banco de dados. no caso so permitir preencher outro campos se o input que esta sendo verificado estiver correto ou seja tudo ok...
       
      Lembrando este input ele é preenchido conforme é digitado no input name="nome_empresa"  Não sei se isso interfere ao fazer a verificação
       
      HTML
             <div class="col-md-6">         <div class="form-group">          <label for="nome_empresa">Nome</label>          <input type="text" autocomplete="off" id="nome_empresa" maxlength="100"  name="nome_empresa" class="form-control input_nome_empresa" required placeholder="Nome da Loja">        </div>      </div>      <div class="col-md-6">       <div class="form-group">        <label for="nome_empresa_link">Url Amigavél</label> <em id="resposta"></em>        <input type="text" autocomplete="off"  id="nome_empresa_link" name="nome_empresa_link" maxlength="100" class="form-control input_nome_empresa_link" required placeholder="/ Use maiúsculas, minúsculas e underline.">        <?= $site; ?><span><em style="color: green;" id="nome_empresa_link"></em>/</span>      </div>    </div> No PHP fazer verificação fiz isso...
      <?php if(isset($_POST['nome_empresa_link'])) { $nome_empresa_link=$_POST['nome_empresa_link']; $checkdata = DBCount('ws_empresa','nome_empresa_link',"WHERE nome_empresa_link = '{$nome_empresa_link}'"); if ($checkdata >= 0) { //echo "Um nome igual este já esta sendo usado no sistema"; swal('Atenção!!!', 'A URL AMIGAVÉL não disponivél para cadastro \n tente com outro nome!', 'warning', 'Fechar'); } /*else { echo "<font color='green'>Disponivél...</font>"; } */ exit(); } ?> No ajax fiz assim
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script language="javascript"> var nome_empresa_link = $("#nome_empresa_link"); nome_empresa_link.blur(function() { $.ajax({ url: 'notificacao/checkdata.php', type: 'POST', data:{"nome_empresa_link" : nome_empresa_link.val()}, success: function(data) { console.log(data); data = $.parseJSON(data); $("#resposta").text(data.nome_empresa_link); } }); }); </script> Só que não retorna nada
       
       
    • By DuduBacteria
      Tenho uma Tabela chamada "VENDAS" com os seguintes atributos:
       
       
      Eu quero retornar em MySQL o total de vendas ocorridos durante 1 semana, entre o dia atual até seis dias atrás.
       
      Ficando mais ou menos assim:
       
      SEMANA              TOTAL DE VENDIDO segunda                250.00 domingo                430.00 sábado                 160.50 sexta                  300.03 quinta                 300.03 quarta                 300.03 terça                  300.03
    • By terra
      Olá,
       
      preciso enviar os últimos 10 registros para um único e-mail, mas o código abaixo esta enviando separado
       
       
      agradeço qualquer ajuda
    • By eStevo2734
      Pequei esse código, porém não funciona por nada pela minha capacidade que não é muita em PHP, já mudei ele de todas as formas possível e não funciona.
       
      <?php if(!empty($_FILES['xml']['tmp_name'])){ $arquivo = new DomDocument(); $arquivo->load($_FILES['xml']['tmp_name']); //var_dump($arquivo); $linhas = $arquivo->getElementsByTagName("processo"); //var_dump($linhas); $primeira_linha = true; foreach($linhas as $linha){ if($primeira_linha == false){ // pegar o valor natureza="Produtos e/ou Serviço" no elemento <marca> $nome = $linha->getElementsByTagName("nome")->item(0)->nodeValue; echo "Nome: $nome <br>"; $email = $linha->getElementsByTagName("status")->item(1)->nodeValue; echo "Status: $email <br>"; echo "<hr>"; } $primeira_linha = false; } } ?>  
      O arquivo em XML é beemmm longo
      <?xml version="1.0" encoding="UTF-8" ?> <revista numero="2620" data="23/03/2021"> <processo numero="922151156" data-deposit <despachos> <despacho codigo="IPAS009" nome="Publ </despachos> <titulares> <titular nome-razao-social="HERIK DE </titulares> <marca apresentacao="Mista" natureza="P <nome>SOTEN</nome> </marca> <classes-vienna> <classe-vienna codigo="27.5.1" edicao <classe-vienna codigo="28.3" edicao=" <classe-vienna codigo="26.2.7" edicao <classe-vienna codigo="29.1.15" edica </classes-vienna> <lista-classe-nice> <classe-nice codigo="41"> <especificacao>Agente artístico; li <status>Pendente</status> </classe-nice></lista-classe-nice> <procurador>TENAX SERVIÇOS DE CONSULTOR </processo> <processo numero="920178898"> <despachos> <despacho codigo="IPAS029" nome="Defe </despachos> <titulares> <titular nome-razao-social="DEIVISSON </titulares> <lista-classe-nice> <classe-nice codigo="25"> <especificacao>Bandanas;Bermudas;Bo <status>Deferida</status> </classe-nice> </lista-classe-nice> </processo> Os valores que estou tentando pegar são <nome>
      <status>. Mas também queria tentar pegar os
      valores nome-razao-social="..." e natureza. Penso que
      pode ter algo a ver com o tamanho do arquivo que é um
      pouco maior do que o habitual, girando em torno de
      30 MB e no total vão ter que tirar as informações 22 109
      que é o número de vezes que esse modelo de exemplo
      se repete no documento Mas como disse não sei muito
      sobre PHP é uma suposição)...
×

Important Information

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