GROUP_CONCAT
Para lograr eso, puedes usar la función GROUP_CONCAT de MySQL para concatenar los nombres de los intervinientes en una sola columna para cada carpeta. Aquí está la modificación en tu consulta SQL:
Con la modificación que se hizo en la consulta SQL utilizando GROUP_CONCAT, ahora obtendrás solo una fila por carpeta y en la columna nombres_intervinientes tendrás la lista de nombres concatenados de la tabla carp_interviniente. Asegúrate de ajustar el código según tus necesidades y estructura exacta de la base de datos.
class getVideossModel extends Conexion
{
public function obtenerDatos()
{
// Selecciona las columnas que necesitas de la tabla carpetas
// y utiliza GROUP_CONCAT para obtener una lista de nombres de la tabla carp_interviniente
$consulta = "SELECT c.id, c.num_inv, c.carpeta, c.fecha_carpeta, c.tipo_solicitud, c.distrito, c.juez, c.Asignado, GROUP_CONCAT(i.nombre) as nombres_intervinientes
FROM carpetas c
LEFT JOIN carp_interviniente i ON c.id = i.id_carpeta
GROUP BY c.id";
// Preparar y ejecutar la consulta
$resultado = Conexion::conectar()->prepare($consulta);
$resultado->execute();
// Procesar los resultados como lo necesites
$html = '';
$num_rows = $resultado->rowCount();
if ($num_rows > 0) {
$carpetas = $resultado->fetchAll();
foreach ($carpetas as $carpeta) {
if ($carpeta['id'] !== 0) {
$html .= '<tr>';
$html .= '<td>' . $carpeta['num_inv'] . '</td>';
$html .= '<td>' . $carpeta['carpeta'] . '</td>';
$html .= '<td>' . $carpeta['fecha_carpeta'] . '</td>';
$html .= '<td>' . $carpeta['tipo_solicitud'] . '</td>';
$html .= '<td>' . $carpeta['distrito'] . '</td>';
$html .= '<td>' . $carpeta['juez'] . '</td>';
$html .= '<td>' . $carpeta['Asignado'] . '</td>';
$html .= '<td>' . $carpeta['nombres_intervinientes'] . '</td>';
$html .= '</tr>';
}
}
} else {
$html .= '<tr>';
$html .= '<td colspan="8">Sin resultados</td>';
$html .= '</tr>';
}
echo json_encode($html, JSON_UNESCAPED_UNICODE);
}
}
$videos = new getVideossModel();
$videos->obtenerDatos();
Comentarios
Publicar un comentario