Rezultate 1 la 7 din 7

Subiect: Cum lucrez cu date (calendaristice)?

  1. #1
    Avatarul lui Federals
    Federals este deconectat Ambasador
    Reputatie:
    33
    Data înscrierii
    29th November 2007
    Locaţie
    Bucuresti
    Posturi
    612
    Putere Rep
    33


    Implicit Cum lucrez cu date (calendaristice)?

    Salut!

    Am de facut niste calcule pe baza unor date din doua tabele. Problema suna cam asa:

    Un utilizator se poate inscrie pe site la o anumita data (sa zicem 23.11.2009). Contul sau expira default peste o luna (adica 23.12.2009). In intervalul asta userul face anumite operatii pe site, care se inregistreaza pe rand. Daca a facut 2 operatii, pot avea sa zicem 25.11.2009 si 30.11.2009.
    Avand toate astea, eu trebuie sa ii fac niste statistici: intre data X (data inregistrarii pe site) si data Y (daca expirarii) a facut Z operatii in datele Z1, Z2, ...
    In contul lui ar trebui sa apara niste luni pt care ii arat statisticile. De exemplu, daca contul ii expira pe data de 23.01.2010, el trebuie sa aiba noiembrie, decembrie, ianuarie, luni pt care trebuie sa vada operatiile facute.

    Nu prea stiu sa elaborez un algoritm pt asta. Aveti ceva idei? Eu tot ce am in baza de date e: data_inscrierii, data_expirarii, data_operatiei, toate fiind de tip date.

    Multumesc!

  2. #2
    Avatarul lui CristiC
    CristiC este deconectat Membru SeoPedia
    Reputatie:
    32
    Data înscrierii
    2nd May 2008
    Locaţie
    Bucuresti
    Vârstă
    44
    Posturi
    91
    Putere Rep
    32


    Implicit

    Din cate banuiesc pentru acest lucru ai 2 tabele:
    - utilizatorii cu datele de inscriere / expirare (T1)
    - operatiile pe utilizator cu data operatiei (T2)

    Selectul este foarte simplu:

    Cod PHP:
    SELECT MONTH(T2.DATA_OPERATIELUNACOUNT(T2.DATA_OPERATIENUMAR_OPERATII
    FROM TEST2 T2 JOIN TEST1 T1 ON T1
    .ID=T2.ID
    WHERE T2
    .DATA_OPERATIE BETWEEN T1.DATA_INSCRIERE AND DATA_EXPIRARE
    AND T1.ID=USERID
    GROUP BY MONTH
    (T2.DATA_OPERATIE

  3. #3
    Avatarul lui dacian
    dacian este deconectat Membru SeoPedia
    Reputatie:
    33
    Data înscrierii
    4th May 2007
    Locaţie
    [root@localhost root]#
    Vârstă
    49
    Posturi
    346
    Putere Rep
    33


    Implicit

    Mai creaza inca o tabela in baza de date (campuri > id_user, data_modificarii, nume_modificare) in care sa inregistrezi acele operatii pentru fiecare user in parte, asa poti oferi relativ usor statistici pentru fiecare user in parte.

  4. #4
    Avatarul lui Federals
    Federals este deconectat Ambasador
    Reputatie:
    33
    Data înscrierii
    29th November 2007
    Locaţie
    Bucuresti
    Posturi
    612
    Putere Rep
    33


    Implicit

    Pana acum statisticile sunt ca in screenshot. Totalul de mail-uri trimise (astea fiind de fapt operatiile) sunt pe toate lunile. Tot ce vreau sa fac e sa am un dropdown cu lunile (de la data inscrierii la data expirarii) iar la campanii sa imi apara numarul de mail-uri trimise doar din acea luna. Voi incerca variantele voastre, momentan ma lovesc de problema ca datele cu care lucrez sunt in baze de date diferite, pe servere diferite.
    Imagini atașate Imagini atașate

  5. #5
    Avatarul lui dacian
    dacian este deconectat Membru SeoPedia
    Reputatie:
    33
    Data înscrierii
    4th May 2007
    Locaţie
    [root@localhost root]#
    Vârstă
    49
    Posturi
    346
    Putere Rep
    33


    Implicit

    Filtrezi in DB dupa ce parametri vrei tu si poti rezolva treaba cu select-ul foarte simplu . Nu vad care ar fi problema sa fie 2 db-uri pe servere diferite, e mai mult de munca dar tot relativ usor de implementat ramane.

  6. #6
    Avatarul lui CristiC
    CristiC este deconectat Membru SeoPedia
    Reputatie:
    32
    Data înscrierii
    2nd May 2008
    Locaţie
    Bucuresti
    Vârstă
    44
    Posturi
    91
    Putere Rep
    32


    Implicit

    Citat Postat în original de dacian Vezi Post
    Filtrezi in DB dupa ce parametri vrei tu si poti rezolva treaba cu select-ul foarte simplu . Nu vad care ar fi problema sa fie 2 db-uri pe servere diferite, e mai mult de munca dar tot relativ usor de implementat ramane.
    Exact. Iti iei datele de inceput si de sfarsit si selectul ar fi cam asa:

    Cod:
    SELECT MONTH(DATA_OPERATIE) LUNA, COUNT(DATA_OPERATIE) NUMAR_OPERATII
    FROM OPERATII
    WHERE DATA_OPERATIE BETWEEN [DATA_INSCRIERE] AND [DATA_EXPIRARE]
    AND ID=USERID
    GROUP BY MONTH(DATA_OPERATIE)

  7. #7
    Avatarul lui Federals
    Federals este deconectat Ambasador
    Reputatie:
    33
    Data înscrierii
    29th November 2007
    Locaţie
    Bucuresti
    Posturi
    612
    Putere Rep
    33


    Implicit

    aaa, super! va multumesc!

Informații subiect

Utilizatori care navighează în acest subiect

Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)

Thread-uri Similare

  1. Extragere date din URI
    De Popescu Marian în forumul Server side
    Răspunsuri: 2
    Ultimul Post: 17th August 2009, 10:22
  2. Link din baza de date
    De Federals în forumul Server side
    Răspunsuri: 15
    Ultimul Post: 28th June 2009, 20:58
  3. Date private
    De c|neva în forumul Bar, lobby...
    Răspunsuri: 5
    Ultimul Post: 11th September 2008, 12:27
  4. Baza de date :)
    De Sebastian în forumul Bar, lobby...
    Răspunsuri: 3
    Ultimul Post: 9th September 2008, 23:05
  5. Baza de date
    De eRwin în forumul Server side
    Răspunsuri: 5
    Ultimul Post: 26th August 2005, 09:10

Permisiuni postare

  • Nu puteţi posta subiecte noi.
  • Nu puteţi răspunde la subiecte
  • Nu puteţi adăuga ataşamente
  • Nu puteţi modifica posturile proprii
  •