query count minus vorige dag/id

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tom Wellink

Tom Wellink

13/12/2010 14:11:06
Quote Anchor link
Beste,

Ik heb een cronjob welke dagelijks het aantal tweets van vandaag in de database plaatst.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
// verbinding maken

$query = "SELECT SUM(count) FROM archives";
    
$result = mysql_query($query) or die(mysql_error());

// Tonen resulaten
while($row = mysql_fetch_array($result)){
    echo $row['SUM(count)'];
    echo "<br />";
}


?>


Iedere dag plaats hij dit in de database, netjes met aantal tweets die dag gemaakt, nu wil ik alleen dat ie eigenlijk toont hoeveel tweets die dag precies gemaakt meer gemaakt zijn.

Hiervoor wil ik dus het resultaat min het vorige resultaat/dag/id doen (ik sla op met auto id increcement)

Hoe kan ik dit realiseren?
 
PHP hulp

PHP hulp

21/09/2024 03:31:12
 
- SanThe -

- SanThe -

13/12/2010 14:15:28
Quote Anchor link
SELECT SUM(count) AS blabla FROM archives
echo $row['blabla'];
 
Tom Wellink

Tom Wellink

13/12/2010 14:23:05
Quote Anchor link
Santhe, kun je iets duidelijker zijn? Snap je uitleg niet. Ik krijg dus al een uitslag, laten we zeggen 2000, en dan wil ik dat deze min de uitslag van de dag ervoor gedaan wordt.... ik zie dat niet terug in jouw query... dus voorbeeld 2000-230 en dan zou er dus uitkomen dat er vandaag 1770 nieuwe bij zijn.... Mijn eigen query geeft namelijk al netjes een totaal uitslag...maar wil die dus nu nog min de totaaluitslag van de dag ervoor doen...
Gewijzigd op 13/12/2010 14:24:02 door Tom Wellink
 
- SanThe -

- SanThe -

13/12/2010 14:26:46
Quote Anchor link
Ik heb alleen aangegeven hoe bovenstaand scriptje kan werken. Zoals jij het hebt staan zal het niet werken.
 
Tom Wellink

Tom Wellink

13/12/2010 14:37:34
Quote Anchor link
Ik krijg toch echt een uitslag... hij telt alle apparte count onderdelen op, ene bevat 300, andere 400 en maakt daar totaal uitkomst van... zie --> http://www.lsbeta.nl/twittertest/stats.php

Er komt nu dus een totaal uit, dat wordt opgeslagen in de database, nu wil ik dus dat dat morgen het totaal van die dag minus het resultaat van de vorige dag gedaan wordt...
 
Kris Peeters

Kris Peeters

13/12/2010 16:49:53
Quote Anchor link
Is dat echt nodig?
Over het algemeen probeer je te vermijden om dubbele en berekende informatie in een database te steken.

Je kan dat altijd on the fly laten berekenen door mySQL (zie post van SanThe).
 
Tom Wellink

Tom Wellink

13/12/2010 17:04:54
Quote Anchor link
Het komt niet dubbel hier opmaak idee

DAG AANTAL
1 500
2 900 (waren 1400 tweets, min de 500=900 gemaakt op dag 2)
3 2000 (waren 2900 tweets, min de 900= 2000 tweets gemaakt op dag 3)

Dus wil elke dag, als de cronjob draait om dingen op te slaan, dat hij het totaal aantal tweets - dag ervoor doet

Ik sla dus nu elke dag gewoon het totaal op wat er in totaal is, maar wil dat dus veranderen naar de echte gemaakte tweets...
Gewijzigd op 13/12/2010 17:06:02 door Tom Wellink
 
- SanThe -

- SanThe -

13/12/2010 17:09:40
Quote Anchor link
Waarom sla je niet gewoon het aantal per dag op en niet het totaal. Dat totaal is heel simpel op te vragen met SUM(). Als jij nu alleen het laatste aantal wilt hebben pak je gewoon het laatse record.

Dus in de database id, aantal en datum
Gewijzigd op 13/12/2010 17:11:17 door - SanThe -
 
Aad B

Aad B

13/12/2010 17:09:55
Quote Anchor link
Breid je tabel uit met de datum en sla die ook op.
Het is dan simpel om te tellen, sommeren, per dag, per maand wat je maar wilt...
DIt heet datamodelleren.
 
Kris Peeters

Kris Peeters

13/12/2010 17:10:56
Quote Anchor link
Okay, het is niet dubbel, maar het is wel een berekende waarde.
Als je bv. op een forum ziet hoeveel posts er zijn in het totaal, is dat niet omdat dat getal ergens in een db is ingevuld. Telkens wordt die waarde berekend.

Stel dat je nu records uit het verleden verwijdert, dan klopt die waarde toch niet meer.

Zo is het bv. ook niet nodig om de dag van de week in een veld op te slaan als je de datum hebt. MySQL berekent de dag van de week zelf.
 
- SanThe -

- SanThe -

13/12/2010 17:12:30
Quote Anchor link
Drie keer dezelfde reactie, wat zijn we weer eensgezind ;-)
 
Tom Wellink

Tom Wellink

13/12/2010 17:17:20
Quote Anchor link
Haha waarom ik dat doe, omdat ik in feite hashtags archiveer (dat gaat zo snel de count, dat ik daarom maar 1 maal per dag het archiveren stop zet om count te maken)

Omdat elke hashtag een eigen count heeft van x aantal tweets dat ie heeft tel ik die gewoon bij elkaar op zoals te zien was in mijn php code hierboven. Vervolgens las ik dit altijd uit eenmaal per dag en sloeg dit op, nu wil ik alleen vooral aan gaan tonen hoeveel per dag meer tweets er g earchiveerd worden (moet ik aantonen voor meer servercapaciteit te krijgen binnen t bedrijf) en wilde ik dus elke keer om middernacht als ie de count maakt van geheel, dat hij dat gewoon min de opgeslagen count van de vorige dag doet....
 
Kris Peeters

Kris Peeters

15/12/2010 22:17:37
Quote Anchor link
Eventueel zou je zo'n update kunnen laten uitvoeren door de (toevallige) eerste gebruiker van de dag die naar je site surft.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.