Ir para conteúdo
Fórum Script Brasil
  • 0

Problema Ao Utilizar If Else


marceloths

Pergunta

<?
include 'conexao.inc';
$dataatual = date('Y/m/d');
$horaatual = date('H:i');
$ipcapturado = $HTTP_SERVER_VARS['REMOTE_ADDR'];
$acao = $_GET['action'];
switch ($acao){
       case 'partic-noticia':
            $categoria = '1';
            $titulo = $_POST['camp1'];
            $autoria = $_POST['camp2'];
            $conteudo = $_POST['camp3'];
            
            # Regra de validação de formulário

            if ($titulo==''){
               header("Location: participar.php?cat=$categoria&erro=tit-nulo");
               break;
            }
            if (strlen($titulo)<5){
               header("Location: participar.php?cat=$categoria&erro=tit-menor");
               break;
            }
            if (strlen($titulo)>40){
               header("Location: participar.php?cat=$categoria&erro=tit-maior");
               break;
            }
            if ($autoria==''){
               header("Location: participar.php?cat=$categoria&erro=aut-nulo");
               break;
            }
            if (strlen($autoria)<3){
               header("Location: participar.php?cat=$categoria&erro=aut-menor");
               break;
            }
            if (strlen($autoria)>25){
               header("Location: participar.php?cat=$categoria&erro=aut-maior");
               break;
            }
            if ($conteudo==''){
               header("Location: participar.php?cat=$categoria&erro=cont-nulo");
               break;
            }
            # Valida o IP, data e cookie
            $sql = "SELECT ip, data FROM pubnoticias WHERE ip=$ipcapturado and data=$datatual";
            $sqlverifica = mysql_query($sql, $conexao);

            # Se não for encontrado IP Capturado e data atual no banco de dados então
            
            $recuperacookie = $HTTP_COOKIE_VARS["acessado"];
            if ($recuperacookie == ''){
               setcookie('acessado', 'sim', time()+7200);
               $sql = "Insert Into pubnoticias (ip, data, hora, titulo, autor, conteudo) Values ('$ipcapturado', '$dataatual', '$horaatual', '$titulo', '$autoria', '$conteudo')";
               $sqladicionar = mysql_query($sql, $conexao);
               echo 'A notícia foi adicionada com sucesso';
               break;
            /* senão imprime na tela uma mensagem Só é permitido adicionar uma notícia por dia.
            else
                echo "Só é permitido adicionar uma notícia por dia."
            }
            */
            
            }
       break;
       case 'partic-traducao':
       echo 'traducao';
       break;
       case 'verif-usuario':
       echo 'usuario';
       break;
}

echo $ipcapturado;
?>

Na linha "# Se não for encontrado IP Capturado e data atual no banco de dados então" não sei como utilizar o comando condicional if para puxar o valor do banco de dados e verificar se há ou não um registro com ip capturado e data atual no banco dados.

Desde já agradeço por sua atenção.

Marcelo.

Editado por ESerra
Utiliza as tags code ou codebox quando postar scripts longos.
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

A função mysql_num_rows() só serve para exibir a quantidade de registro na tabela selecionada. Acho que não serviria para meu caso.

Gostaria de um exemplo caso sirva a utilização do mysql_num_rows() no código acima.

Sou programador ASP, estou começando agora em PHP e estou com algumas dificuldades. Bom, em ASP eu utilizava o RSTabela.EOF para verificar que tinha ou não o IP Capturado na data atual. Percebi que em PHP não tem EOF (End Of File).

Só gostaria de um exemplo para solucionar problema no meu caso.

Link para o comentário
Compartilhar em outros sites

  • 0

mysql_num_rows retorna o número de linhas da query quer for informada como argumento, no seu caso o mais simples seria...

if (mysql_num_rows($sqlverifica) == 0){
//Aqui é se não encontrar nada no banco
}else{
//Aqui é se encontrar alguma coisa
}

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado mais uma vez, ESerra... você me ajudou mais uma vez...

Só para finalizar minha dúvida, esse é jeito mais utilizado de puxar o dados de banco de dados através do comando condicional (if else)? sinto que a maneira que foi citado não é muito utilizado.

Testei o código abaixo, mas está ocorrendo uma mensagem de erro: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\brgames\verifica.php on line 47

# Valida o IP, data e cookie
            $sqlverifica = "SELECT * FROM pubnoticias WHERE ip=$ipcapturado and data=$datatual";

            if (mysql_num_rows($sqlverifica) == 0){ #linha com problema
            $recuperacookie = $HTTP_COOKIE_VARS["acessado"];
            if ($recuperacookie == ''){
               setcookie('acessado', 'sim', time()+7200);
               $sql = "Insert Into pubnoticias (ip, data, hora, titulo, autor, conteudo) Values ('$ipcapturado', '$dataatual', '$horaatual', '$titulo', '$autoria', '$conteudo')";
               $sqladicionar = mysql_query($sql, $conexao);
               echo "adicionado com sucesso";
               #header("Location: participar.php?cat=$categoria&erro-sucesso");
               break;
            } else {
               echo "dado já adicionado";
               #header("Location: participar.php?cat=$categoria&erro=naopermitido");
               break;
            }
            }

Sinceramente, não sei o porque está dando o erro nessa linha que aparentemente está tudo certo.

Atenciosamente,

Marcelo

Editado por marceloths
Link para o comentário
Compartilhar em outros sites

  • 0

O condicional não puxou nada do BD, eu apenas inclui o mysql_num_rows nele porque costumo fazer isso, mas poderia ter feito assim também

$numero_regs = mysql_num_rows($sqlverifica);
if ($numero_regs == 0){
//Aqui é se não encontrar nada no banco
}else{
//Aqui é se encontrar alguma coisa
}

A query que buscou de fatos os dados no BD está acima do condicional em questão...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...