Jump to content


Photo

Problemas Com Enquete


  • Faça o login para participar
2 replies to this topic

#1 Red FeniX

Red FeniX

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Não informado

Posted 25/04/2009, 11:55

Bom,

To tendo um problema com meu sistema de enquete. Ele simplesmente não registra os votos. Arquivos:

form no index.php
<?				$sql_3 = mysql_query("SELECT * FROM $tableenqs WHERE status_e='1' ORDER BY idEnquete DESC LIMIT 1") or die(mysql_error());				$a = mysql_fetch_array($sql_3);										$idEnquete = $a["idEnquete"];										echo '<form method="post" action="java script: abrirpg(\'confirma.php?id='.$idEnquete.'&op='.$_POST["enquete_op"].'\',\'900\',\'600\');">';					echo "<b>".$a["pergunta"]."</b><br /><br />";																				$sql_4 = mysql_query("SELECT * FROM $tableenqops WHERE id_enquete='$idEnquete' ORDER BY opcao ASC") or die(mysql_error());										while($o = mysql_fetch_array($sql_4)) {												echo '<div style="margin-top: 8px; clear: both;">						<label><input type="radio" name="opcao" value="'.$o["idOpcao"].'" style="float: left; padding-right: 5px; margin-top: 1px;">						<p style="float: left; padding-left: 5px; *margin-top: 4px;">'.$o["opcao"].'</p></label>						<br />						</div>';					}										echo '<br /><br /><div style="float: right; font-size: 10px; padding-top: 5px; margin-right:8px;"><a href="#" onclick="java script: abrirpg(\'resultado.php?enq='.$idEnquete.'\',\'900\',\'600\');">Ver Resultado</a></div>';					echo '<div style="float: left; font-size: 10px; padding-left: 8px;"><input type="submit" name="votar" class="bt_simples" value="votar" /></div><br /><br />';					echo "</form>";				?>

confirma.php
<?include "global.php"; 			$id = $_GET["id"];		$op = $_GET["op"];				$info_enq_2 = mysql_query("SELECT * FROM csl_enquetes WHERE idEnquete='$id'");		$eif = mysql_fetch_array($info_enq_2);			$vts = $eif["total_vts"];							$id_op = $_POST["opcao"];				$o_cap = mysql_query("SELECT * FROM csl_enquetes_ops WHERE idOpcao='$id_op'");		$opinfo = mysql_fetch_array($o_cap);				$nvotos = $opinfo["votos"];			$total_vts = $vts++;		$votos_ac = $nvotos++;				$up_ops = mysql_query("UPDATE csl_enquetes_ops SET votos='$votos_ac' WHERE idOpcao='$id_op'") or die(mysql_error());		$up_enq = mysql_query("UPDATE csl_enquetes SET total_vts='$total_vts' WHERE idEnquete='$id'") or die(mysql_error());	if($up_ops && $up_enq) {				header("Location: resultado.php?id=".$id);		exit;	}	else {				echo "erro!";	}?>

resultado.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><?phpinclude "global.php";include "slclass.php";?><html xmlns="http://www.w3.org/1999/xhtml"><head><title>Enquetes - Resultado - Classificadão SL</title>	<link rel="shortcut icon" href="favicon.ico" type="image-x/icon" /><style>body {	font-family: Arial, Helvetica, sans-serif;	font-size: 11px;	color: #000000;	background: url(imagens/bg_principal.png);	margin: 0px;}h1 {	font-size: 25px;	text-transform: uppercase;}h3 {	font-size: 18px;}#All {	width: 870px;	background: #FFFFFF;	padding: 5px;	border-right: 1px dotted #999;	border-bottom: 1px dotted #999;	overflow: hidden;}#boxPub {	width: 728px;	background: #E3E3E3;	margin: 0 auto;	font-size: 10px;	color: #ABABAB;	padding: 5px;	padding-top: 0px;}#boxCont {}</style></head><body><div id="All"><div id="boxPub">Publicidade<img src="http://i.s8.com.br/images/afiliados/banner/728x90_celular_21194877.gif" /></div><div id="boxCont"><?php$id = $_GET["id"];if(isset($id) || !empty($id) || $id != "") {		$info_enq = mysql_query("SELECT * FROM $tableenqs WHERE idEnquete='$id'");		$einf = mysql_fetch_array($info_enq);				$pergunta = $einf["pergunta"];		$tl_vts = $einf["total_vts"];					echo "<div style='width: 95%; margin-bottom: 45px;'>";		echo "<h1>".$pergunta."</h1>";		echo "</div>";				$opcoesq = mysql_query("SELECT * FROM $tableenqops WHERE id_enquete='$id'");				echo "<div style='width: 500px'>";				while ($opi = mysql_fetch_array($opcoesq)) {						$nvts = $opi["votos"];						$exibe_votos = round($nvts / $tl_vts * 100, 1);			$wid = $exibe_votos;						echo "<div style='width: 200px; height: 20px; font-size: 15px; text-transform: uppercase; font-weight: bolder;'>".$opi["opcao"]."</div>";			echo "<div style='height: 40px; font-size: 15px; font-weight: bolder;'><div style='position:relative; float:left; height:10px; width:{$wid}px; background: #447e05; height: 20px; margin-right: 2px;'></div>  - ".$exibe_votos."%</div>";			}		echo "</div>";		}else {		echo "<center><b>A URL digitada não é válida! Tente novamente.</b></center>";}?></div></div></body></html>

Tabelas SQL:

csl_enquetes

idEnquete | pergunta | data_add | status_e | total_vts

csl_enquetes_ops

idOpcao | id_enquete | opcao | votos


Qual o erro?

flw

#2 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 26/04/2009, 19:11

Olá jovem.

Ali no seu confirma.php podemos dar uma boa melhora (ficou meio sem noção sua lógica :P)

[codebox]
$id = $_GET["id"];
$op = $_GET["op"];
$id_op = $_POST["opcao"];

$total_vts = $vts++;
$votos_ac = $nvotos++;

$up_ops = mysql_query("UPDATE csl_enquetes_ops SET votos= (votos + 1) WHERE idOpcao= {$id_op}") or die(mysql_error());
$up_enq = mysql_query("UPDATE csl_enquetes SET total_vts= (total_vts + 1) WHERE idEnquete={$id}") or die(mysql_error());
[/codebox]

Tente dar um exit(); antes dos Updates, para ver se pelo menos tá chegando nesse trecho ;)

[]'s

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#3 Red FeniX

Red FeniX

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Não informado

Posted 26/04/2009, 22:25

Ae,

Coloquei o error_reporting E_ALL e retornou isso na página confirma.php:

Notice: Undefined index: opcao in C:\Arquivos de programas\VertrigoServ\www\csl\confirma.php on line 12

Warning: Cannot modify header information - headers already sent by (output started at C:\Arquivos de programas\VertrigoServ\www\csl\confirma.php:12) in C:\Arquivos de programas\VertrigoServ\www\csl\confirma.php on line 27

Linha 12:

$id_op = $_POST["opcao"];

Linha 27:

header("Location: resultado.php?id=".$id);

Linha 6:

nada!

Sobre o q tu disse, retornou isso:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Qual o erro da minha lógica?

Ah, mudei isso aqui:

$total_vts = $vts++;
$votos_ac = $nvotos++;

Pra isso:

$total_vts = $vts + 1;
$votos_ac = $nvotos + 1;

Falo

Edição feita por: Red FeniX, 26/04/2009, 22:30.





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq