Devolver datos de respuesta múltiple en una sola respuesta
En su código PHP, tiene una consulta que recupera varias filas de datos de una tabla de base de datos . Sin embargo, está recibiendo múltiples respuestas y desea fusionarlas en una sola respuesta con múltiples registros.
Para lograr esto, debe modificar su consulta para realizar una combinación izquierda en las tablas necesarias. En lugar de obtener datos de los estudiantes, obtendrá datos de la materia e incluirá la información relevante del estudiante mediante uniones izquierdas. Esto le permitirá incluir datos relacionados de varias tablas en una sola respuesta.
Aquí hay un ejemplo de la consulta actualizada:
$sql = 'SELECT
subjects.userid,
users.name AS username,
(
SELECT id
FROM tbsubjects
WHERE userid = subjects.userid
ORDER BY id ASC
LIMIT 1
) AS subjectsid,
(
SELECT name
FROM tbsubjects
WHERE
userid = subjects.userid
ORDER BY time DESC
LIMIT 1
) AS subjectname,
(
SELECT IFNULL(SUM(points), 0)
FROM tbsubjects
WHERE
userid = subjects.userid
AND month = DATE_FORMAT(NOW(), "%c")
) AS activepts,
IFNULL(SUM(subjects.points), 0) AS totalpts,
(
SELECT IFNULL(SUM(points), 0)
FROM tbsubjects
WHERE
userid = subjects.userid
AND semester = 1
) AS sem1,
(
SELECT IFNULL(SUM(points), 0)
FROM tbsubjects
WHERE
userid = subjects.userid
AND semester = 2
) AS sem2,
(
SELECT IFNULL(SUM(points), 0)
FROM tbsubjects
WHERE
userid = subjects.userid
AND semester = 3
) AS sem3
FROM
tbsubjects AS subjects
LEFT JOIN tbusers AS users ON users.id = subjects.userid
WHERE subjects.userid = :userid GROUP BY subjects.userid ORDER BY subjects.time DESC';
En esta consulta:
Después de ejecutar esta consulta, obtendrá una respuesta única que contiene varios registros de materia, cada uno con la información necesaria del estudiante y los valores calculados.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3