PHP - Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in FICHERO on line 22

 
Vista:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in FICHERO on line 22

Publicado por Carlos (6 intervenciones) el 10/08/2017 23:49:09
¿Porqué me genera error en la línea 22 si lo comparo con otros PHP y los tengo bien?

En la línea 22 tengo lo siguiente:

1
while($rowHorEmp = mysql_fetch_array($resHorEmp))

Y la variable $resHorEmp viene de la siguiente consulta:

1
2
3
$sqlHorEmp = "SELECT t.Nombre, t.Documento, t.Dia, MAX(t.Entrada) Entrada, MAX(t.Salida) Salida, t.Horario FROM ( SELECT u.Nombre, u.Documento, r.Dia, IF(r.Tipo = 'Entry', r.Hora, NULL) Entrada, IF(r.Tipo = 'Exit', r.Hora, NULL) Salida, CONCAT(h.Entrada, "-", h.Salida) Horario FROM USUARIOS u INNER JOIN relacion_colaborador_horario rh ON (u.Id_Usuario = rh.Id_Usuario) INNER JOIN horarios h ON (rh.Id_Horario = h.Id_Horario) INNER JOIN ( SELECT Documento, Tipo, Dia, IF(Tipo = 'Entry', MIN(Hora), MAX(Hora)) Hora FROM REGISTROS GROUP BY Documento, Tipo, Dia ) r ON(r.Documento = u.Documento) WHERE (r.Tipo = 'Entry' AND r.Hora > h.Entrada) OR (r.Tipo = 'Exit' AND r.Hora < h.Salida) ) t GROUP BY t.Nombre, t.Documento, t.Dia, t.Horario ORDER BY t.Dia DESC, t.Nombre ASC";
 
$resHorEmp = mysql_query($sqlHorEmp,$con_mysql);
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
Imágen de perfil de facundo

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in FICHERO on line 22

Publicado por facundo (185 intervenciones) el 11/08/2017 03:29:48
proba en vez de usar mysql_fetch_array y mysql_query usá mysqli_fetch_assoc y mysqli_query.

proba también cambiando esto: mysql_query($sqlHorEmp,$con_mysql) por mysqli_query($con_mysql,$sqlHorEmp)

Si no te anda, proba lo siguiente:

1
var_dump($sqlHorEmp);

Y el resultado que te devuelva eso pegalo en workbench o phpmyadmin (la parte que te permite ingresar codigo sql), si te tira error es porque hay algo mal en la consulta sql
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
Imágen de perfil de [abZeroX]
Val: 575
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in FICHERO on line 22

Publicado por [abZeroX] (157 intervenciones) el 11/08/2017 21:49:40
Hola Carlos, al igual que facundo te recomiendo que utilizes la clase mysqli, ya que la extensión mysql esta declarada obsoleta a partir de php 5.5.
En cuanto al error, el problema puede estar en la ejecución de la consulta que ya que el mismo error lo dice "Se esperaba un recurso y se dio boolean", por lo que podrias comprobarlo ejecutando el siguiente código luego de la linea 22.

1
echo "[ Error ] " . mysqli_error($con_mysql);

Nos comentas.
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