S J miniblogs

  • S J
    0

    Sveiki. Kā es šeit varētu sakārtot pēc postiem/karmas?
    http://svens.exs.lv/activity
    Tos datus izvelk ar šādu kodu:
    if ($page == 'activity') {
    echo '<div class="readbox">';
    $logged_users = $db->query("SELECT * FROM log ORDER BY `log`.`id` ASC");
    echo '<center>Vēlies tikt šeit pievienots? Dodies uz <a class="small Lietotājs" href="http://svens.exs.lv/track">http://svens.exs.lv/track</a><br />
    <table class="mhm">
    <tr>
    <td>Lietotājvārds</td>
    <td>Posti</td>
    <td>Karma</td>
    <td>Posti dienā</td>
    <td>Karma dienā</td>
    <td>Klase</td>
    <td>Pēdējo reizi manīts</td>
    </tr>';
    $days = 'https://exs.lv/user_stats/json/16433';
    $json_days = file_get_contents($days);
    $decode_days = json_decode($json_days);
    $print_days = $decode_days->{'days'} - 770;
    while ($print = $logged_users->fetch_object()) {
    $url = 'https://exs.lv/user_stats/json/' . $print->user_id . '';
    $json = file_get_contents($url);
    $decode = json_decode($json);
    $posts = $decode->{'posts'} - $print->posts;
    $karma = $decode->{'karma'} - $print->karma;
    $nick = $decode->{'nick'};
    $user_id = $decode->{'id'};
    $lastseen = $decode->{'last_seen'};
    $type = $decode->{'type'};
    $time = time()- 8*60;
    $time = date("Y-m-d H:i:s", $time);
    if ($lastseen > $time) {
    $star = '<span style="color:">*</span>';
    }
    else {
    $star = '';
    }
    if ($type == 'user') {
    $type2 = 'Lietotājs';
    }
    else if ($type == 'moderator') {
    $type2 = 'Moderators';
    }
    else if ($type == 'journalist') {
    $type2 = 'RA';
    }
    else if ($type == 'admin') {
    $type2 = 'Administrators';
    }
    echo '<tr>
    <td><a class="small ' . $type2 . '" href="https://exs.lv/user/' . $user_id . '">' . $star . '' . $nick . '</a></td>
    <td>' . $posts . '</td>
    <td>' . $karma . '</td>
    <td>' . round($posts/$print_days, 2) . '</td>
    <td>' . round($karma/$print_days, 2) . '</td>
    <td>' . $type2 . '</td>
    <td>' . $lastseen . '</td>
    </tr>';
    }
    echo '</table><br /></center></div>';
    }


    Datubāzē tiek glabāti tikai lietotāju ID, atņemamais postu un karmas skaits.

    • S J
      0

      Bump..

    • mad
      0

      Jāielasa visu pa priekšu kaut kādā masīvā un jāsakārto pirms rādīšanas.

      Bet vispār būtu labi netaisīt tik daudz pieprasījumu uz katru ielādi un ierakstīt tos datus kaut kā pie sevis db. Un atjaunot ik pa laikam. Kā sakārtot izvelkot no db tad jau vairs nebūtu problēma.

      • S J
        0

        To atjaunošanu kautvai ar webmin iebūvēto crontabu sataisīt? Nu "php /home/svens/public_html/refresh_skripts.php"

        • mad
          0

          Nu jā, var tā. Bet neliec baigi bieži.

        • S J
          0

          Reizi 5 minūtēs būs ok?

        • mad
          0

          Retāk. To lapu tā pat neviens tik bieži neapskatīts. Varbūt tikai šodien, kamēr te hajs par tām sacensībām biggrin_mini2.gif

          Tur sanāk baigi daudz pieprasījumu reizē.

Atpakaļ Uz augšu