Foros del Web » Programando para Internet » PHP »

Problemas con update

Estas en el tema de Problemas con update en el foro de PHP en Foros del Web. Buenos dias: Estoy creando una encuesta con tres posibles valores donde elegir y en funcion de lo que elija se debe incrementar el voto en ...
  #1 (permalink)  
Antiguo 05/05/2008, 04:31
 
Fecha de Ingreso: abril-2006
Mensajes: 128
Antigüedad: 18 años
Puntos: 1
Problemas con update

Buenos dias:
Estoy creando una encuesta con tres posibles valores donde elegir y en funcion de lo que elija se debe incrementar el voto en uno.
La encuesta la hago de la siguiente forma:

encuesta4.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Encuesta</title>
<?php
$holaa="hola";
$votar=$_GET['votar_x'];
?>
<script language="javascript">
marcado=false;
function mandar(f,b){
if ((marcado==true) && (b==true)){
window.open(' ', 'popup', 'width=500, height=400');
return true;
}
if ((marcado==false) && (b==true)){
alert("Por favor, elija una opción de la encuesta");
return false;
}
if ((marcado==false) && (b==false)){
window.open(' ', 'popup', 'width=500, height=400');
return true;
}
if ((marcado==true) && (b==false)){
window.open(' ', 'popup', 'width=500, height=400');
return true;
}
}
</script>
</head>

<body>
<?php
include ("../php/conexion.php");
$link=Conectarse();
$pregunta="SELECT * FROM encuestas WHERE id_encuestas=1";
$respuesta="SELECT * FROM respuestas WHERE encuestas_id_encuestas=1";
$sqlpregunta=mysql_query($pregunta,$link);
$sqlrespuesta=mysql_query($respuesta,$link);
$row=mysql_fetch_array($sqlpregunta);
?>
<table border="0">
<tr>
<td colspan="2"><p class="opinionencuesta">ENCUESTA </p><td>
</tr>
<tr>
<td colspan="2">
<form name="formu" method="get" action="respuesta4.php" target="popup" onsubmit="return mandar(this,b)">
<?php
$idencuesta=$row['id_encuestas'];
echo '<p class="encuesta"><input type="hidden" name="idencuesta" value="'.$row[0].'">'. $row['pregunta']. '</p></td></tr>';
while($row=mysql_fetch_array($sqlrespuesta)){

echo '<tr><td><p class="opcionencuesta"><input type="radio" onclick="marcado=true" name="opcion" value="'.$row[0].'">' .$row['texto'] .'</p></td></tr>';

}
?>
<tr>
<td>
<input type="image" name="votar" src="../botones/votar.jpg" value="votar" onclick="b=true">
<input type="image" name="resultado" src="../botones/resultados.jpg" value="resultado" onclick="b=false" >
</td>
</tr>

</form>
</body>
</html>


Y una vez elegida la opción se abriría una nueva ventana para mostrar los resultados donde primero se incrementaría el número de votos en función de la opción elegida y después ya se mostraría todo el resultado.
Y lo hago de la siguiente forma:

respuesta4.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Encuesta</title>
<link rel="stylesheet" typs="text/css" href="css/informacion.css">
</head>

<body id="fondo">
<?php
include ("../php/conexion.php");
$link=Conectarse();

$idencuesta=$_GET['idencuesta'];
$respuesta=$_GET['opcion'];

$actualizar="UPDATE respuestas SET votos=votos+1 where (id_respuestas=$respuesta)";
$actualizarresult=mysql_query($actualizar,$link);

$nuevo="SELECT * FROM respuestas where (id_respuestas=$respuesta)";
$sqlnuevo=mysql_query($nuevo,$link);
while($votosnuevo=mysql_fetch_array($sqlnuevo)){
echo "votosnuevo $votosnuevo[3]<br>";
}
?>
</body>
</html>

En este fragmento sólo tengo puesto la actualización de los votos, pero como esto no me lo hace bien, pues no he seguido con el resto del código, pero eso es irrelevante. Lo que quiero es que primero incremente perfectamente los votos y esto no lo hace ya que incrementa de 3 en 3 y no se porque, porque por mas que cambia la forma de update da igual.
Como se solucionaria esto, es decir, como se incrementaria perfectamente los votos de la base de datos, según como tengo planteada la encuesta4.php.
Muchas gracias de antemano
  #2 (permalink)  
Antiguo 05/05/2008, 05:51
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Re: Problemas con update

Debes eliminar ese paréntesis.

UPDATE respuestas SET votos=votos+1 where id_respuestas=$respuesta;
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #3 (permalink)  
Antiguo 05/05/2008, 06:07
 
Fecha de Ingreso: abril-2006
Mensajes: 128
Antigüedad: 18 años
Puntos: 1
Re: Problemas con update

Ya he quitado el paréntesis y no suma los votos de uno en uno, sino que incrementa de 3 en 3 igualmente.
El paréntesis yo creo que es irrelevante, debe ser otro problema, pero no lo encuentro.
Alguien tiene alguna idea.
Muchas gracias
  #4 (permalink)  
Antiguo 05/05/2008, 06:11
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Re: Problemas con update

entonces debe ser la variable $respuesta... por que de esa manera debería de sumar 1 a el valor original.
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #5 (permalink)  
Antiguo 05/05/2008, 08:20
 
Fecha de Ingreso: abril-2006
Mensajes: 128
Antigüedad: 18 años
Puntos: 1
Re: Problemas con update

Tampoco es la variable $respuesta, porque si esa variable la cambio por el valor por ejemplo 3 sigue incrementando de 3 en 3.
De verdad que no lo entiendo pero no funciona.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:58.