Foros del Web » Programando para Internet » PHP »

Error en : mysql_fetch_array(): supplied argument is not a valid MySQL result

Estas en el tema de Error en : mysql_fetch_array(): supplied argument is not a valid MySQL result en el foro de PHP en Foros del Web. Estoy programando un sistema de encuestas (basandome en el que trae en el taller de php de desarrollo web. al votar carga la pagina encuesta.php ...
  #1 (permalink)  
Antiguo 05/03/2006, 16:29
 
Fecha de Ingreso: abril-2005
Mensajes: 6
Antigüedad: 19 años, 7 meses
Puntos: 0
Exclamación Error en : mysql_fetch_array(): supplied argument is not a valid MySQL result

Estoy programando un sistema de encuestas (basandome en el que trae en el taller de php de desarrollo web.


al votar carga la pagina encuesta.php aparece el siguiente error:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/wiccaibe/public_html/sitio/encuesta.php on line 18

La linea 18 es:
$SQLrow = mysql_fetch_array($SQLresult);

el codigo de encuestas.php es :

Código:
<?
//recibo el voto
$voto = $_POST["voto"];

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

$servidor="localhost";
$usuario="Usuario";
$password="******";
$base="encuesta";
$SQLid = mysql_connect($servidor,$usuario,$password);
mysql_select_db($base,$SQLid);

$SQLquery = "UPDATE tbenc"." SET encval$voto = encval$voto+1, enctot = enctot+1 where encid='$encid'";
$SQLresult = mysql_query($SQLquery,$SQLid);
$SQLquery = "SELECT * FROM tbenc where encid='$encid'";
$SQLresult = mysql_query($SQLquery,$SQLid);
$SQLrow = mysql_fetch_array($SQLresult);
?>

<P class="enctitle">Resultados actuales de la encuesta (Resultados parciales)</P>
  <P> 
   
<?
  	echo $SQLrow["encprg"]
?>
 </font></strong></P>
  <TABLE ALIGN="center" WIDTH="75%" BORDER="0" CELLSPACING="1" CELLPADDING="1">
    <!--DWLayoutTable-->
    <TR> 
      <TD ALIGN="left" WIDTH="23%"><? echo $SQLrow["encopt1"]?> 
        <div align="left"></div></TD>
      <TD><IMG HEIGHT="5" WIDTH="<? echo $SQLrow["encval1"]*100/$SQLrow["enctot"]?>%" SRC="imagenes/barra1.gif"></TD>
      <TD ALIGN="center" WIDTH="14%"><? echo $SQLrow["encval1"]?> votos</TD>
    </TR>
    <TR> 
      <TD ALIGN="left"><? echo $SQLrow["encopt2"]?> 
        <div align="left"></div></TD>
      <TD><IMG HEIGHT="5" WIDTH="<? echo $SQLrow["encval2"]*100/$SQLrow["enctot"]?>%" SRC="imagenes/barra2.gif"></TD>
      <TD ALIGN="center"><? echo $SQLrow["encval2"]?> votos</TD>
    </TR>
    <TR> 
      <TD ALIGN="left"><? echo $SQLrow["encopt3"]?> 
        <div align="left"></div></TD>
      <TD><IMG HEIGHT="5" WIDTH="<? echo $SQLrow["encval3"]*100/$SQLrow["enctot"]?>%" SRC="imagenes/barra3.gif"></TD>
      <TD ALIGN="center"><? echo $SQLrow["encval3"]?> votos</TD>
    </TR>
    <TR> 
      <TD ALIGN="left"><? echo $SQLrow["encopt4"]?> 
        <div align="left"></div></TD>
      <TD><IMG HEIGHT="5" WIDTH="<? echo $SQLrow["encval4"]*100/$SQLrow["enctot"]?>%" SRC="imagenes/barra4.gif"></TD>
      <TD ALIGN="center"><? echo $SQLrow["encval4"]?> votos</TD>
    </TR>
  </TABLE>
  <P ALIGN="center">Total de votos emitidos: <? echo $SQLrow["enctot"]?></P>
y el del formulario de envio :
Código:
<?
$servidor="localhost";
$usuario="Usuario";
$password="******";
$base="encuesta";

	$SQLid = mysql_connect($servidor,$usuario,$password);
	mysql_select_db($base,$SQLid);
	$SQLquery = "SELECT * FROM tbenc order by encid desc";
	$SQLresult = mysql_query($SQLquery,$SQLid);
	$SQLrow = mysql_fetch_array($SQLresult);
?>
<!-- FORM -->

<form name="Encuesta" method="post" action="sitio/encuesta.php">
<input type=hidden name="encid" value="<?echo $SQLrow[0]?>"> 
<div id="FormEnc">
  <div class="enctitle">¿Te gusta la web(diseño...)?<? echo $SQLrow[1]?></div>

     <input type="radio" name="voto" value="1" style="margin-left:-110px;"><label class="enctitle">Si. <? echo $SQLrow[2]?></label><br/>                
     <input type="radio" name="voto" value="2" style="margin-left:-103px;"><label class="enctitle">No. <? echo $SQLrow[3]?></label><br/>              
     <input type="radio" name="voto" value="3" style="margin-left:-55px;"><label class="enctitle">Ni si ni NO.<? echo $SQLrow[4]?></label><br/>
	 <input type="radio" name="voto" value="4" style="margin-left:-95px;"><label class="enctitle">Otros.<? echo $SQLrow[5]?></label><br/>     
     <input type="submit" name="Submit" value="Votar" class="EncSubmit">       			
   </div>
</form>
 

<!-- FIN FORM -->
He estado repasando el tutorial y no veo na diferente
de hecho el archivo encuestas.php que me descargue con el tuto solo lo modifique para poner la base de datos correcta y el usuario y el pasword.

El formulario de envio modifique algunas cosas , pero dejandolo muy similar.

Si me podeis ayudar

Mi web es wiccaiberica.es

Última edición por Abelcoto17; 06/03/2006 a las 03:06
  #2 (permalink)  
Antiguo 05/03/2006, 16:51
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 19 años, 1 mes
Puntos: 1
Hum,
Quizas debas poner la variable entre comillas simples:

Código:
$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'";
ArgoN
PD: pon: **** en user y password del codigo php que has pegado. No es bueno que todo el mundo lo sepa...

Última edición por -=ArgoN=-; 05/03/2006 a las 17:10
  #3 (permalink)  
Antiguo 05/03/2006, 17:33
Avatar de vevni  
Fecha de Ingreso: julio-2005
Ubicación: cancun mexico
Mensajes: 598
Antigüedad: 19 años, 4 meses
Puntos: 3
concuerdo con ARGON, revisa esos puntos y nos comentas!!
__________________
Código PHP:
echo"hola mundo ver 1221332143.02";
echo
"cuantos usuarios habran impreso hola mundo en el mundo.!???"
  #4 (permalink)  
Antiguo 06/03/2006, 03:10
 
Fecha de Ingreso: abril-2005
Mensajes: 6
Antigüedad: 19 años, 7 meses
Puntos: 0
Sigue dando el mismo error. Si comento la linea del error se carga la pagina pero no muestra los votos .

¿Podria ser que no guarda bien los datos en la base de datos y al darle a enviar . si en la base de datos hago un Select * from tbenc no me muestra nada (sigue apareciendo la estructura de la tabla) ?
  #5 (permalink)  
Antiguo 06/03/2006, 05:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Deberías usar la función mysql_error() .. así veras el error de SQL o conexión concreto que tengas:

Código PHP:
<?
$SQLresult 
mysql_query($SQLquery,$SQLid) or die (mysql_error());
Un saludo,
  #6 (permalink)  
Antiguo 06/03/2006, 06:32
 
Fecha de Ingreso: abril-2005
Mensajes: 6
Antigüedad: 19 años, 7 meses
Puntos: 0
Se soluciona parcialmente poniendo las ' '. Pero aunque no da ningun error no muestra los votos. Es como si estuviera mal el formulario de envio o algo de encuestas.php.

Me gustaria solucionar los errores para aprender , ya que quiero usar php para hacer mas dinamica la web sistema de comentarios y envio de articulos , sesiones ...)

No obstante mirando cosas sobre encuestas en php encontre un script en php llamado Advanced Poll 2.0.4 que tiene muchas opciones(cookies,sesiones,...).

Tambien buscare otros escripts interesantes.

Última edición por Abelcoto17; 06/03/2006 a las 06:44
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:57.