Ergebnis 1 bis 5 von 5

Thema: User Aktivität / pro Monat - PHP

  1. #1
    Interessierte/r Avatar von XantypiaxD
    Registriert seit
    17.01.2010
    Beiträge
    123
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard User Aktivität / pro Monat - PHP

    Hey Leute.

    Schon wieder komme ich mit einem Problem.

    Ich sitze derzeit an einem kleinen Userpanel. Dieses soll unter anderem zeigen, wie oft sich der User pro Monat angemeldet hat. Dabei soll nur eine Anmeldung pro Tag zählen. Also kann man max. 30 bzw. 31 "Aktivitätspunkte" pro Monat "sammeln".

    Mein Fehler bzw. Problem besteht darin, dass er zwar immer die Monate ausgibt, aber das Jahr nicht berücksichtigt. Bzw es soll so aussehen:

    00 00 00 00 00
    03/11 04/11 05/11 06/11 07/11

    In einer Art Legende der Monat bzw. das Jahr.. oben drüber die "Punkte" wie oft man im Monat angemeldet war.

    Ich habe das Ganze so gelöst:

    PHP-Code:
      <table id="activity_top">
        <tr>
        <?php
        date_default_timezone_set
    ('UTC');
        
    $month date("m");
        
    $year date("y");
        
    $month_length substr($month0, -1);
        if(
    $month_length=="0"$month substr($month1);
        
        switch(
    $month) {
            case 
    1:
                
    $i 11;
                
    $k 3;
            break;
            case 
    2:
                
    $i 12;
                
    $k 4;
            break;
            case 
    11:
                
    $i 9;
                
    $k 1;
            break;
            case 
    12:
                
    $i 10;
                
    $k 2;
            break;
            default:
                
    $i $month 2//START
                
    $k $month 2//END
            
    break;
        }
        
        for(
    $i$i<=$k$i++) {
            if(
    $i>12$i=1;
            if(
    $i<10) {
                
    $f='0'.$i;
            } else {
                
    $f=$i;
            }
        
    $sql2 mysql_query("SELECT `id` FROM `activity` WHERE `user_id`='".$user_id."' AND `datum` LIKE '%-".$f."-%';");
        
    $res2 mysql_num_rows($sql2);
        if(
    $res2<10$res2 '0'.$res2;
        echo 
    '<td>'.$res2.'</td>';
        }
        
    ?>
        </tr>
        </table>
        <table id="activity_bottom">
        <tr>
            <td>03/11</td>
            <td>04/11</td>
            <td>05/11</td>
            <td>06/11</td>
            <td>07/11</td>
        </tr>
        </table>
    Die Legende habe ich jetzt erstmal außen vor gelassen. Vllt könnte mir jmd. von euch Verbesserungsvorschläge geben, wie ich die Monate und das Jahr miteinbeziehen kann, bzw. dann auch die Legende bestücken kann.

    Danke XantypiaxD
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Unregistriert
    Gast

    Standard AW: User Aktivität / pro Monat - PHP

    Ich werde weder aus deiner Beschreibung noch aus dem Quellcode schlau, ist irgendwie chaotisch

  3. #3
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: User Aktivität / pro Monat - PHP

    Wir kennen deine datenbankstruktur nicht, und wissen nicht, wie du das abspeicherst. Ich würde das so machen:
    Code:
    tabelle activity
    user_id | timestamp
    --------+-----------
    1       | 12953600
    

    Undzwar ist der timestamp der des aktuellen tages um 0:00:00 Uhr. (Wie du auf den kommst, solltest du selbst rausfinden können).
    Beim login wird nun eben dieser timestamp generiert und in der tabelle nachgesehen, ob der User sich an diesem Tag bereits eingeloggt hat. Je nachdem erstellst du einen neuen datensatz oder eben nicht.

    Beim anzeigen geht es darum, den Timestamp von 1. des Monats um 0:00:00 Uhr und des 30. / 31. des Monats um 23:59:59 Uhr herauszufinden und ber COUNT alle datensätze zu zählen, die im zwischenraum liegen.

    Ist sicher nicht die optimal lösung.
    EDIT:
    Es ist sogar eine ziemlich schlechte, denn auf dauer wird die Tabelle riesig und nach n paar järchen kanns sein, dass der login dann deswegen ziemlich langsam wird. Die grenze von 256 TB bei MyISAM wirst du aber eher nicht erreichen, dein Server auch nicht.

    Optional kannst du es auch per cronjobs lösen:
    Du hast eine Tablle daily_activity, deren Einträge jeden tag um 0:00:01 in ene tabelle monthly_activity übernommen werden und danach gellert wird.
    Die monthly_activity leerst du ebenso jeden Monat am letzten tag um 23:59:59 und fügst die gesammelten punke der user einer generellen Tabelle hinzu.
    Geändert von Tobse (25.05.2011 um 19:10 Uhr)
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  4. #4
    Interessierte/r
    Themenstarter
    Avatar von XantypiaxD
    Registriert seit
    17.01.2010
    Beiträge
    123
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: User Aktivität / pro Monat - PHP

    Nach etwas Fummelarbeit habe ich es hinbekommen.

    Gruß XantypiaxD

  5. #5
    Pion
    Gast

    Standard AW: User Aktivität / pro Monat - PHP

    Es würde ja auch ein Eintrag pro User reichen

Ähnliche Themen

  1. Mitglieder meines Forums zu mehr Aktivität bewegen?
    Von Teron Gerofied im Forum HTML & CSS Forum
    Antworten: 6
    Letzter Beitrag: 25.09.2008, 10:29
  2. (S) Designer für 500€ im Monat
    Von netimpact im Forum Job Forum - Jobs für Grafiker, Programmierer und Webmaster
    Antworten: 0
    Letzter Beitrag: 02.04.2008, 13:16
  3. Webhosting ab 0,99 Euro/Monat
    Von knuppel im Forum Webhoster - Provider - (free) Webspace - Server - Domain
    Antworten: 4
    Letzter Beitrag: 24.09.2007, 00:04
  4. Navigationsleiste - bei aktivität markiert
    Von meikschmidt im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 14
    Letzter Beitrag: 16.10.2006, 22:21

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •