PHP - Como procesar dos consulta en un while pero que muestren las que no están

 
Vista:
Imágen de perfil de Yoel
Val: 204
Ha aumentado su posición en 97 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como procesar dos consulta en un while pero que muestren las que no están

Publicado por Yoel (46 intervenciones) el 16/07/2020 01:08:28
Tengo la siguiente situación: estoy usando dos consultas que responde a una misma relación pero la condición del Where es distinta. El resultado de estas dos consultas lo tengo que mostrar en una sola tabla, por lo que estoy ejecutando las dos consultas dentro de un while y uniendo los dos array con un array_marge().

El problema se me esta presentado cuando muestro los registro, ya que una consulta me devuelve más que la otra y solo se me muestra hasta la cantidad de registros menor y lo que necesito es que siempre se me muestren todos los registros por la consulta que más tenga. A continuación les dejo el código para ver si me pueden ayudar.

Gracias.

1
2
3
4
5
6
7
8
9
10
11
12
$query = $this->db->query("SELECT reporte_nomnia.*,
(SELECT CONCAT(`tipo_asist`.`nombre_cor`,' ',`tipo_asist`.`nombre`) FROM `tipo_asist` WHERE `tipo_asist`.`idempresa` = `reporte_nomnia`.`idempresa`  AND `tipo_asist`.`nombre_cor` = `reporte_nomnia`.`concepto`) AS codigo,
(SELECT COUNT(`asistencia`.`id`)  FROM asistencia INNER JOIN empleado ON asistencia.id_empl = empleado.id_empl INNER JOIN tipo_asist ON asistencia.id_tipoasist = tipo_asist.id WHERE `tipo_asist`.`nombre_cor` = `reporte_nomnia`.`concepto`  AND empleado.id_empl = `reporte_nomnia`.`idempleado` AND fecha_ent >= `periodo`.`fecha_inicio` AND fecha_ent <= `periodo`.`fecha_final`  GROUP bY `empleado`.`id_empl` ) As relojdias,
CONCAT(`empleado`.`nombre`,' ', `empleado`.`apellidos`) AS nomb
FROM reporte_nomnia INNER JOIN `empleado` ON `empleado`.`id_empl` = `reporte_nomnia`.`idempleado` INNER JOIN `periodo` ON `periodo`.`id` = `reporte_nomnia`.`idperiodo` WHERE 1 " . $search . $ordenby . " LIMIT " . $init . "," . $reg . "");
$query2 = $this->db->query("SELECT reporte_nomnia.dh AS dh2,reporte_nomnia.importe AS importe2
FROM reporte_nomnia INNER JOIN `empleado` ON `empleado`.`id_empl` = `reporte_nomnia`.`idempleado` INNER JOIN `periodo` ON `periodo`.`id` = `reporte_nomnia`.`idperiodo` WHERE 1 " . $search2 . $ordenby . " LIMIT " . $init . "," . $reg . "");
 
while ($list = $query->fetch_assoc() and $list2 = $query2->fetch_assoc()) {
    $this->aplicacion[] = array_merge($list, $list2);
}
return $this->aplicacion;
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 Kathyu
Val: 2.155
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Como procesar dos consulta en un while pero que muestren las que no están

Publicado por Kathyu (680 intervenciones) el 16/07/2020 11:11:46
Hablamos de SQL o HTML? me confundo, donde es que aparecen menos? en la vista o en el resultado de la query?
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 Yoel
Val: 204
Ha aumentado su posición en 97 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como procesar dos consulta en un while pero que muestren las que no están

Publicado por Yoel (46 intervenciones) el 16/07/2020 15:44:51
Me aparece menos en los array que de forman después del query ejemplo $list tiene 20 y $list2 tiene 23 o viceversa por lo que al mostrar en el html no se me muestran todos los registro.
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 Lopez
Val: 397
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como procesar dos consulta en un while pero que muestren las que no están

Publicado por Lopez (128 intervenciones) el 16/07/2020 16:22:34
Hola Yoel,
Puedes ejecutar la consulta en la consola sql?
Allí podrás ver cuantos resultados arroja. Puede ser la consulta sea la que este limitando la salida.
Saludos!
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