2016-05-24 15 views
-1

Ich habe PHP-Formular, in dem Sie Ihre Einnahmen/Ausgaben (grundlegende Home-Budget-Management) einreichen können. Um jeden Monat sie automatische Wiederholung zu haben, verwende ich Code wie untenWiederkehrende Mysql einfügen

INSERT INTO income (ammount, date, desc, category) 
SELECT ammount, now(), desc, category FROM income WHERE recurring=1 and date LIKE '____-__-23' 

Recurring ist immer 0 oder 1 (tinyint) einmal zu unterscheiden von wiederkehrenden Erträge/exp. Alles funktioniert gut, außer der Tatsache, dass ich 62 php Skripte zu Cron hinzugefügt habe (31 für Einkommen und 31 für Ausgaben - 1 für jeden Tag des Monats). Gibt es dafür eine bessere Lösung? Ich suche keine vollständige Lösung - zeigen Sie mir einfach in die richtige Richtung. Vielen Dank.

+1

Sie haben 31 Skripte für Einkommen, eines für jeden Tag des Monats und der einzige Unterschied zwischen ihnen ist das Ende der LIKE-Klausel? Ist das dein Problem? – Mateusz

+0

Ja - das ist richtig – Horancorn

+0

Ich bin enttäuscht, dass Sie nicht herausgefunden haben, dass Sie ein Skript mit einer Variablen darin schreiben könnten. Denken Sie daran, dass Computer Ihnen das Leben erleichtern sollen. Wenn sie nicht versuchen, bewerten Sie Ihre Strategie, um zu sehen, ob Sie gegen den Strich gehen. – tadman

Antwort

1

Es gibt eine Funktion namens DAY (auch DAYOFMONTH), die den Tag des Monats aus dem Datumsfeld extrahiert. Das bedeutet, dass Sie

date LIKE '____-__-23' 

zu

DAYOFMONTH(date) = DAYOFMONTH(NOW()) 

Sie werden nicht mehr ein Skript benötigen für jeden Tag des Monats ändern können.

Denken Sie daran, diese Abfragen nicht vor Mitternacht auszuführen.

Wenn Sie mehr erfahren möchten, lesen Sie die docs.

+0

Das war, was ich gesucht habe - erraten Sie es, mehr Dokumentation zu lesen. Vielen Dank. – Horancorn