Mysql
 sql >> база данни >  >> RDS >> Mysql

Оптимизирайте итерирането през масив с помощта на цикли foreach

Трябва само да направите добра MySQL заявка.

Вижте тук .

Можете да правите добавяния, изваждания и неща като date BETWEEN x AND Y , можете да направите SELECT SUM() с GROUP BY и така нататък.

Това, което Хакан има предвид (предполагам), е, че го правите по грешен начин:първо трябва да направите заявка, която прави почти цялата работа вместо вас. Няма нужда да разработвате толкова сложно нещо.

И три други съвета:

  • опитайте се да избягвате ключови думи в Php като $expense->Date . Това създава проблеми с подчертаването на синтаксиса (в най-добрия в най-лошия случай Php няма да разбере вашия код).
  • добавете още коментари в кода си, за да обясните какво се опитвате да направите.
  • опитайте се да избягвате ключови думи в Php И SQL заявки. Имате колона с име „Date ' и колона с име 'Type '. Това не е безопасно.

Ето само началото на това как може да изглежда вашият SQL и почти трябва да покрива 95% от вашия код. Забележка:това е предложение:оставете всички сървъри на бази данни да свършат работата вместо вас, това е направено за това:

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'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да създадете MySQL потребител само за четене?

  2. референтни колони с автоматично увеличение?

  3. Mysql обединяващ брой няколко колони

  4. CakePHP запазва HABTM данни

  5. Извличане на текущи потребителски идентификатори от базата данни, за да се използва в нова таблица