Database cronjob automatiseren
Onlangs heb ik een script gemaakt om een soort top 40 lijst te maken, dit werkt goed maar ik loop iedere week bij het upaten van die lijst tegen het probleem aan dat ik dit enkel handmatig kan doen, net voordat de nieuwe top 40 verschijnt.
Nu wilde ik dit automatiseren, door op voorhand de gegevens in te geven en dan d.m.v. een cronjob de lijst te vervangen op het moment dat dat gewenst is. Echter heb ik geen idee hoe ik de nieuwe gegevens moet opslaan in de database terwijl die de oude op dat moment nog moet weergeven. Iemand een idee hoe ik dit het beste aanpak?
Nu wilde ik dit automatiseren, door op voorhand de gegevens in te geven en dan d.m.v. een cronjob de lijst te vervangen op het moment dat dat gewenst is. Echter heb ik geen idee hoe ik de nieuwe gegevens moet opslaan in de database terwijl die de oude op dat moment nog moet weergeven. Iemand een idee hoe ik dit het beste aanpak?
Gewijzigd op 27/04/2014 13:56:40 door Ronald Broos
Dan kun je het beste eerst je database normaliseren. Vereenvoudigd voor de top 3 in week 41 en 42 krijg je bijvoorbeeld zoiets:
Via de nummer-ID verwijs je vervolgens naar de nummers in een tweede tabel, zodat je die maar één keer hoeft toe te voegen.
Met een weeknummer in een PHP-script of SQL-query kun je vervolgens geheel automatisch op het juiste moment overschakelen naar de nieuwe top 40.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
+------+---------+-----------+
| Week | Positie | Nummer-ID |
+------+---------+-----------+
| 41 | 1 | 41224 |
| 41 | 2 | 23124 |
| 41 | 3 | 49316 |
| 42 | 1 | 23124 |
| 42 | 2 | 49316 |
| 42 | 3 | 53217 |
+------+---------+-----------+
| Week | Positie | Nummer-ID |
+------+---------+-----------+
| 41 | 1 | 41224 |
| 41 | 2 | 23124 |
| 41 | 3 | 49316 |
| 42 | 1 | 23124 |
| 42 | 2 | 49316 |
| 42 | 3 | 53217 |
+------+---------+-----------+
Via de nummer-ID verwijs je vervolgens naar de nummers in een tweede tabel, zodat je die maar één keer hoeft toe te voegen.
Met een weeknummer in een PHP-script of SQL-query kun je vervolgens geheel automatisch op het juiste moment overschakelen naar de nieuwe top 40.
Dus eigenlijk in de tabel weeknummers 1 t/m 53 aanmaken zeg maar en dan op weeknummer sorteren en doormiddel van een cronjob op het gewenste moment een script laten laden voor de juiste weergave?
Dat hoeft niet eens met een cronjob: uit de actuele servertijd kun je met een datumfunctie het weeknummer halen.
En vast vooruitdenkend aan januari: misschien ook een kolom "jaar" toevoegen
Ja inderdaad maar ik moet hem op een bepaald tijdstip na uitzending aanroepen.
Dan tel je enkele, dagen, uren en/of minuten op bij het tijdstip waarop de week begint. Rekenen met datums en tijden kan ook.
Ronald, zou je aub de titel "hulp gevraagd" willen aanpassen in een titel die iets zegt over jouw probleem, bijv. "database cronjob automatiseren". Iedereen hier heeft namelijk hulp nodig. Je kunt de titel aanpassen door je allereerste bericht te wijzigen. Alvast bedankt.




