Jump to content
Fórum Script Brasil
  • 0

Problema Ao Utilizar If Else


marceloths
 Share

Question

<?
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.

Edited by ESerra
Utiliza as tags code ou codebox quando postar scripts longos.
Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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

Edited by marceloths
Link to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.4k
×
×
  • Create New...