Ir para conteúdo

POWERED BY:

Arquivado

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

cguilherme

[Resolvido] Contar colunas existentes numa tabela

Recommended Posts

Olá

 

Estou com um problema!

Criei um codigo que me vai consultar uma base de dados onde tenho uma tabela com o nome ip.

Ele vai procurar o meu ip á tabela, e se ja estiver lá ele envia-me para uma pagina chamada index.php, até tudo bem.

O problema é se o ip não estiver na tabela. Se ele não tiver, então o codigo devia continuar ate á parte onde insere o ip na tabela ip.

Podem ajudar-me a encontrar o erro?

Repararem, o problema não está no ir á tabela e confirmar se o IP está lá pois ele faz isso. Se ele encontrar um ip ja existente, ele envia para a pagina index sem problemas.

O codigo inserido dentro do else, se o executar sem a condicao de procurar o ip ele executa sem problemas e insere na base de dados o IP. Mas colocando o codigo para verificar se o IP está la, e se o IP estiver ja nao funciona. Ele fica com a pagina em branco no ficheiro questionarios_adicionar.php (é esta mesma pagina que tem o codigo que postei em baixo).

Eu penso que o problema esteja na primeira condição do $Rows em que confirma se é maior que zero, então ja esta registado mas senão for ele não faz o que devia fazer (o else).

Ja agora, as variaveis que uso nas queries estão guardadas noutro ficheiro e também não são problema.

Abraços

 

<?php
include_once("../configuracoes/base_de_dados.php");

  $sql =mysql_query("SELECT * FROM $tabela_ip WHERE ip='$ip'"); 
  $Rows = mysql_num_rows($sql) or die(mysql_error());
if($Rows > 0) {

header("Location: ../index.php");

} 
  else {

$resposta=$_POST["radio"];
$questionario=1;
$sql="SELECT $resposta from $tabela_questionarios where id=$questionario";
$resultado=mysql_query($sql);
while($row = mysql_fetch_row($resultado))
{
	$valor	= $row[0];
}
$valor++;
$sql="UPDATE $tabela_questionarios set $resposta=$valor where ID=$questionario";
$resultado=mysql_query($sql);

if($resultado){
mysql_query("INSERT INTO $tabela_ip (id, ip, tempo) VALUES(NULL, '$ip', '$questionario_tempo')") 
or die(mysql_error());  
header("Location: ../index.php?pagina=questionario1");
}
else {
$erro="Aconteceu um erro ao registar o  voto no sistema de questionários.<br> Pedimo-lhes que contacte a equipa de manutenção do website e nos reporte este erro enviando um email para cguilherme-magalhaes@hotmail.com<br> Obrigado e pedimos desculpas pelo incómodo";
header("Location: ../erro.php");
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim:

$Rows = mysql_num_rows($sql) or die(mysql_error());

remove essa parte destacada....

deixa soh assim:

$Rows = mysql_num_rows($sql);

 

axo ke vai funcionar!

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

-----EDIT-----

PS: Cuidado ao tratar suas variáveis....

nao capte-as assim:

$resposta=$_POST["radio"];

 

um jeito + seguro porem nao completamente invulneravel eh:

$resposta = addslashes($_POST["radio"]);

 

procura na internet alguma classe anti sql-injection!

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

espero ter ajudado! :D

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.