Foros del Web » Programando para Internet » PHP »

error en select (supplied argument is not a valid MySQL result resource )

Estas en el tema de error en select (supplied argument is not a valid MySQL result resource ) en el foro de PHP en Foros del Web. $sql1="SELECT fecha, fecha_publicacion, DATEDIFF(fecha, fecha_publicacion) as diferencia, destinatario, fk_login FROM Notificaciones WHERE estatus=0"; $execute_sql1=mysql_query($sql1); while($row=mysql_fetch_array($execute_sql1)){ ------ESTA ES LA LINEA 11 $diferencia=$row['diferencia']; $fecha_publicacion.=$row['destinatario']; $fk_login.=$row['fk_login']; } EXACTAMENTE ...
  #1 (permalink)  
Antiguo 07/03/2006, 06:04
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
Antigüedad: 12 años
Puntos: 0
error en select (supplied argument is not a valid MySQL result resource )

$sql1="SELECT fecha, fecha_publicacion, DATEDIFF(fecha, fecha_publicacion) as diferencia, destinatario, fk_login
FROM Notificaciones WHERE estatus=0";
$execute_sql1=mysql_query($sql1);


while($row=mysql_fetch_array($execute_sql1)){ ------ESTA ES LA LINEA 11
$diferencia=$row['diferencia'];
$fecha_publicacion.=$row['destinatario'];
$fk_login.=$row['fk_login'];
}

EXACTAMENTE ESTE ES EL ERROR:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /opt/IBMIHS/BancaribeAdmin/i_editor.php on line 11
  #2 (permalink)  
Antiguo 07/03/2006, 06:19
 
Fecha de Ingreso: julio-2005
Mensajes: 90
Antigüedad: 12 años, 5 meses
Puntos: 0
Este error es tipico de intentar sacar una tupla de un result que no ha devuleto nada. Prueba a hacer lo siguiente:

var_dump($result);

Esto te hara un 'echo' del contenido de $result.
Haz tb. echo $sql1; para ver que estas consultando realmente, copia/pega la consulta en phpmyadmin, que si la consulta esta mal te dara mas informacion acerca del fallo.

Un Saludo.
  #3 (permalink)  
Antiguo 07/03/2006, 06:39
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
Antigüedad: 12 años
Puntos: 0
echo ($execute_sql1);

ejecute esta variable y no me muestra nada. Quiere decir que no me esta efectuando la operación de la resta de fecha???

como puedo solcionar, posiblemente cual pueda ser el error?????????????????????
  #4 (permalink)  
Antiguo 07/03/2006, 06:40
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 12 años, 2 meses
Puntos: 18
Es bueno comprobar el resultado de un mysql_query para ver si se ha producido algún error o no.
  #5 (permalink)  
Antiguo 07/03/2006, 06:50
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
Antigüedad: 12 años
Puntos: 0
ya comprobe el resultado del mysql query:

Es el siguiente: bool(false)

pero no se cual pueda ser el error en mi query
  #6 (permalink)  
Antiguo 07/03/2006, 09:32
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 12 años, 2 meses
Puntos: 18
Prueba a ir quitando partes de la consulta poco a poco para acotar el problema.
  #7 (permalink)  
Antiguo 07/03/2006, 09:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por ostayde
echo ($execute_sql1);

ejecute esta variable y no me muestra nada. Quiere decir que no me esta efectuando la operación de la resta de fecha???

como puedo solcionar, posiblemente cual pueda ser el error?????????????????????
No .. ahí no vas a obtener nada (a lo sumo un "resurce ID # tal") ..

Debes comprobar várias cosas SIEMPRE:

1) que la consulta SQL se ejecute:
$execute_sql1=mysql_query($sql1) or die (mysql_error());

ahí seguramente veras algún mensaje de error .. tal vez referente a cierta sentencia SQL que pretendes usar como el "DATEDIFF()" que NO está disponible para toda versión de Msyql .. En cualquier caso ... no se trata de decir si será eso o no lo será o prueba aquí o prueba allá .. se trata de que -veas!- el mensaje de error que ahí te arrojará y así deducir el problema y no "probar a ver".

2) Es recomendable NO confiar que una consulta SQL te va a arrojar resultados (1 o más registros) pese que la consulta SQL se ejecute correctamente. Para ello realiza validaciones tipo:

Código PHP:
<?
if (mysql_num_rows($execute_sql1) > 0){
  
// Si hay al menos un resultado . .entonces los recorres/accedes.
   
while($row=mysql_fetch_array($execute_sql1)){ 
   
$diferencia=$row['diferencia'];
   
$fecha_publicacion.=$row['destinatario'];
   
$fk_login.=$row['fk_login'];
  }

} else {
  echo 
"NO hay resultados";
}

Un saludo,
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 04:34.