sql >> Base de Datos >  >> RDS >> Mysql

Optimice la iteración a través de la matriz usando bucles foreach

Solo necesitas hacer una buena consulta de MySQL.

Ver aquí .

Puedes hacer sumas, restas y cosas como date BETWEEN x AND Y , puedes hacer SELECT SUM() con un GROUP BY y así sucesivamente.

Lo que Hakan quiere decir (supongo) es que lo estás haciendo de manera incorrecta:primero debes hacer una consulta que haga casi todo el trabajo por ti. No hay necesidad de desarrollar algo tan complejo.

Y otros tres consejos:

  • trate de evitar palabras clave en Php como $expense->Date . Esto hace que los problemas de resaltado de sintaxis (en el mejor caso, en el peor Php no entenderá su código).
  • agregue más comentarios en su código para explicar lo que está tratando de hacer.
  • trate de evitar las palabras clave en Php Y Consultas SQL. Tiene una columna llamada 'Date ' y una columna llamada 'Type '. Esto no es seguro.

Este es solo un comienzo de cómo podría verse su SQL, y casi debería cubrir el 95% de su código. Nota:esta es una sugerencia:deje que todos los servidores de bases de datos hagan el trabajo por usted, esto está hecho para eso:

SELECT
    ps.Due,ps.Date,
    wt.Amount,wt.Date,
    ex.Amount,ex.Date

LEFT JOIN patient_sessions ps
    ON xxx
    WHERE ps.Type='Session'
    AND ps.Date
        BETWEEN DATE_ADD(NOW(), INTERVAL '-28' DAY)
        AND     DATE_ADD(NOW(), INTERVAL 1 DAY)
LEFT JOIN work_times wt
    ON xxx
LEFT JOIN expenses ex
    ON xxx
    WHERE ex.Client='Psychotherapy'