sql >> Database >  >> RDS >> Mysql

Optimaliseer iteratie door array met behulp van foreach-lussen

U hoeft alleen een goede MySQL-query te doen.

Zie hier .

Je kunt optellen, aftrekken en dingen zoals date BETWEEN x AND Y , kunt u een SELECT SUM() . doen met een GROUP BY enzovoort.

Wat Hakan bedoelt (denk ik) is dat je het op de verkeerde manier doet:je moet eerst een query doen die bijna al het werk voor je doet. Het is niet nodig om zo'n complex ding te ontwikkelen.

En drie andere adviezen:

  • probeer trefwoorden in Php te vermijden zoals $expense->Date . Dit maakt syntaxis-accentuerende problemen (in de beste geval, in het ergste Php begrijpt je code niet).
  • voeg meer opmerkingen toe aan je code om uit te leggen wat je probeert te doen.
  • probeer zoekwoorden in Php EN . te vermijden SQL-query's. Je hebt een kolom met de naam 'Date ' en een kolom met de naam 'Type '. Dit is niet veilig.

Hier is slechts een begin van hoe uw SQL eruit zou kunnen zien, en het zou bijna 95% van uw code moeten beslaan. Let op:dit is een suggestie:laat alle databaseservers het werk voor je doen, dit is daarvoor gemaakt:

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. Geautomatiseerde of regelmatige back-up van mysql-gegevens

  2. Hoe maak je een mysql-tabel met datum- en tijdkolommen?

  3. Datum van Excel verandert bij uploaden naar mysql

  4. MySQL-fout - SQLSTATE [42000]:syntaxisfout of toegangsfout:1064