PHP - lio en formulario "ayuda por favor"

   
Vista:

lio en formulario "ayuda por favor"

Publicado por Jordi (10 intervenciones) el 23/07/2010 12:15:08
Hola otra vez:
Si, disculpadme si soy pesado, pero estoy aprendiendo.
en mi web, tengo un formulario encuesta con cuatro posibles respuestas a una pregunta.
Por otro lado en el mismo formulario, tengo dos campos de texto, (email y contraseña) para que no se pueda votar si no se esta registrado.
cada parte del formulario, pertenece a una tabla diferente de mysql.
Por separado me funcionan las dos opciones es decir si uso autentificacion de usuarios, funciona correctamente y si uso solo la encuesta, los resultados son enviados tambien correctamente, el problema es que cuando quiero hacer las dos cosas al mismo tiempo por medio del boton VOTAR, (autentificacion de usuario + procesar el voto), no me deja hacerlo, siempre me aparece este mensage de error y los datos no se escriben en la tabla de resultados de la encuesta.

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\comerscastellar\resultado.php on line 17

y la linea 17 de mi pàgina es esta:

<?
//recibo el voto
$voto = $_POST["voto"];
//recibo el id de la encuesta
$encid = $_POST["encid"];

$servidor="localhost";
$usuario="root";
$password="";
$base="comerscastellar";
$SQLid = mysql_connect($servidor,$usuario,$password);
mysql_select_db($base,$SQLid);
$SQLquery = "UPDATE tblenc SET encval$voto = encval$voto+1, enctot = enctot+1 where encid=$encid";
$SQLresult = mysql_query($SQLquery,$SQLid);
$SQLquery = "SELECT * FROM tblenc where encid=$encid";
$SQLresult = mysql_query($SQLquery,$SQLid);

linea 17 $SQLrow = mysql_fetch_array($SQLresult);
?>

<P ALIGN="center"><font size="4"><strong><em>RESULTADOS PARCIALES DE LA
ENCUESTA</em></strong></font></P>
<P ALIGN="center"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<?

He leido que hay que usar 2 botones submit uno para cada action diferente, pero no se como se hace esto.
¿podeis hecharme una mano por favor?.

Gracias.

Jordi
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:lio en formulario

Publicado por Leandro (42 intervenciones) el 23/07/2010 14:23:17
El Form de html tiene un unico atributo "action" que indica a donde se envia la informacion del form, por ende, el form solo puede tener un unico boton submit.

Luego tu problema está cuando envias los parametros a la base de datos.
El error que te da es cuando aplcias la funcion mysql_fetch_array($SQLresult);
seguramente en la consulta anterior a esa linea tuviste algun error ( de sintaxis o algo).

Para saber el error, antes de hacer la consulta, imprimela en pantalla, de esa forma puedes ver si tiene errores o no.
Ej:

//Armas la consulta
$consulta = "....";

//imprimes la consulta
echo $consulta."<br>";

//Haces la consulta
$SQLresult = mysql_query($consulta);

//Si es un select obtienes los resultados
$SQLrow = mysql_fetch_array($SQLresult);

Esta es una buena forma de debuggear.
Si no pudiste darte cuenta del error, vuelve a postear mostrando que te tira el
echo de la consulta.
Pero SIEMPRE que te da el error " Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in .... "
es porque la consulta que te dio el resultado que le pasaste a la funcion falló.

Saludos
Leandro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar