Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

sr.silva

Sistema simples de votação

Recommended Posts

mas ela eh setada amigo.

 

quando tu executa a funcao:

PHP
function verificaCadastro($nome)

    {

       

        $bd = new bancodedados();

        $bd->consulta("select nome, cpf from votacao where nome = '$nome' ");    

 

        if ($bd->ress)

        {

            // seta aqui

            $this->jaVotou = true;

        }

        else

        {

            // ou aqui

            $this->jaVotou = false;

        }

    }

 

de uma olhada nessas setadas

coloca echos ali, ve o sql, ve ops retornos, ve se ta setando certo a variavel.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É como falei. Quando coloquei o echo

 

Retornou, dizendo que tinha Registros

 

Agora quando uso variavel, não funciona!!

 

 

Código da classe.

 

class_votacao.php

 

PHP
<?

class Votacao

{

        public $jaVotou = false;

       

        function Votacao($ident=null)

        {

                $this->criaTabela();

 

                if (trim($ident) > 0)

                {

                        $this->set($ident);

                }

        }

       

        function set($pk)

        {

                $this->pk = $pk;

 

                $bd = new bancodedados();

                $bd->consulta("select * from votacao where pk = '$pk'");

                $itm = $bd->fetch();

        }

 

       

        function getPk()

        {

                return $this->pk;

        }

 

 

        function getJaVotou()

        {

                return $this->jaVotou;

        }

       

 

        function add($nome, $empresa, $email, $cpf, $votou)

        {

                $bd = new bancodedados();

                $bd->consulta("insert into votacao set nome = '$nome', empresa = '$empresa', email = '$email', cpf = '$cpf', votou = '$votou' ");

        }

       

        function verificaCadastro($nome, $cpf)

        {

                $bd = new bancodedados();

                $bd->consulta("select nome, cpf from votacao where nome = '$nome' and cpf = '$cpf' ")

 

                if ($bd->ress)

                {

                        $jaVotou = true;

                }

                else

                {

                        $jaVotou = false;           

                }

        }

  }

 

 

Uso da classe e suas funções

 

votacao.php

PHP
<?

if (isset($_POST['enviar']))

{

        //Classe Votacao

        $obVotacao  = new Votacao();

 

 

        //Chama função Verifica Cadastro       

        $obVotacao->verificaCadastro($_POST['nome'], $_POST['cpf']);

 

        if($obVotacao->getJaVotou())

        {

                echo "Obrigado pela sua participação";

        }       

        else   

        {

       

        //Chama função ADD

        $obVotacao->add($_POST['nome'], $_POST['empresa'], $_POST['email'], $_POST['cpf'], 1);

       

        echo "<script>alert('Dados enviado com sucesso');</script>";

        redireciona("index.php?pagina=votacao");

       

        }

       

}

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, quando tu realiza $bd->consulta, ele retorna true mesmo se nao houver registros?

 

acho que o problema esta aqui:

 

if ($bd->ress)

{

$jaVotou = true;

}

else

{

$jaVotou = false;

}

 

pelo que entendi ta sempre retornando true quando tu executa $obVotacao->getJaVotou()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bruno,

 

Creio que a criação de um Campo "JaVotou" do tipo "bolean" na tua tabela votação é a solução mais simples....

 

Neste caso, após o usuário votar tu colocas o valor de JaVotou=1...

 

E sempre quando o usuário logar-se tu verificas o valor do campo Já Votou. Se for igual a "0" é sinal de que ele não votou ainda e a tela de votação deve ser aberta...

 

Mas se caso JaVotou=1, uma tela de votação pode ser aberta.

 

O sistema ainda pode ser ampliado com um campo Data, criando-se aí mais um critério que permitirá uma votação a cada mês, semana, etc, seguindo a vontade de teu cliente.

 

Espero tê-lo ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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