Micael Vianna 0 Denunciar post Postado Novembro 1, 2007 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
sr.silva 1 Denunciar post Postado Novembro 1, 2007 É 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
Micael Vianna 0 Denunciar post Postado Novembro 1, 2007 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
sr.silva 1 Denunciar post Postado Novembro 1, 2007 não..não..quando não tem registro..volta False.. Compartilhar este post Link para o post Compartilhar em outros sites
Micael Vianna 0 Denunciar post Postado Novembro 1, 2007 jah fez o teste? coloca if ($bd->ress) { $jaVotou = true; echo 'tem'; } else { $jaVotou = false; echo 'nao tem'; } Compartilhar este post Link para o post Compartilhar em outros sites
sr.silva 1 Denunciar post Postado Novembro 1, 2007 sim. e retornou True! Compartilhar este post Link para o post Compartilhar em outros sites
Micael Vianna 0 Denunciar post Postado Novembro 1, 2007 mesmo nao existindo? Compartilhar este post Link para o post Compartilhar em outros sites
sr.silva 1 Denunciar post Postado Novembro 1, 2007 existe registro no banco sim!! se expressei mal...me desculpe.. Compartilhar este post Link para o post Compartilhar em outros sites
Micael Vianna 0 Denunciar post Postado Novembro 1, 2007 nao sei se entendeu amigo, o lance eh testar: faz uma consulta se tiver, e uma consulta se nao tiver verifica os retornos Compartilhar este post Link para o post Compartilhar em outros sites
Kante 0 Denunciar post Postado Novembro 18, 2007 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