Nasıl bir kullanıcı geçmişini oluşturabilirim?

2 Cevap php

I want to create a user history function that allows shows users what they done. ex: commented on an ad, posted an ad, voted on an ad, etc.

Bunu tam olarak nasıl yapacağız?

I was thinking about... in my site, when they log in it stores their user_id ($_SESSION['user_id'])

  1. so I guess whenever an user posts an ad(postad.php), comments(comment.php), I would just store in a database table "userhistory" what they did based on whenever or not their user_id was activate.
  2. When they comment, I store the user_id in the comment dbc table, so I'll also store it in the "userhistory" table.
  3. And then I would just queries all the rows in the dbc for the user to show it

Ben yapabilir herhangi bir adım / iyileştirmeler? :)

2 Cevap

Istatistik ve medya wiki şema günlüğü bölümüne bak. Buna benzer bir şey uygulayabilirsiniz.

http://upload.wikimedia.org/wikipedia/commons/4/41/Mediawiki-database-schema.png

Benzer şekilde, ne yapabileceği yani her page hit istenen IP, kullanıcı kimliği, datetime ve sayfa izler MySQL veritabanı, kaydedilir, MySQL tabanlı günlüğü olması.

Sonra geçmişini görüntülemek sayfa için, böyle bir komut olabilir. Bu sadece sözde kodu, yani yüz değeri götürün.

<?php
    $actions = array('comment.php' => 'posted a comment', "postedad.php" => "posted an ad");

    $query = mysql_query("SELECT * FROM logHits JOIN users ON users.id = logHits.userid WHERE loghits.userid = $userid");

    while ($row = mysql_fetch_array($query)) { 
         echo $row['username']." ".$actions[$row['pagename']."<br />"; 
   }
?>

Yine, bu sadece sözde kodu olduğunu ve kesinlikle onun tarafından kavramını artırabilir. Muhtemelen printf bir arada () ;/ sprintf () kullanabilirsiniz; ve gerçek yorumuna eylem metin köprüler yüzden, örneğin, "Yorum" yapmak.

Bu konuda gitmek için pek çok yolu vardır. Bu muhtemelen en iyi yol değildir.

Belirttiğiniz gibi kişilerin bir eylem yaptığında aynı zamanda sadece userHistory gibi bir tabloya bir ekleme sorgusu yapabilirdi. Bu muhtemelen bu konuda gitmek için en iyi yoldur. Eğer id, kullanıcı adınız, actionType, actionid gibi alanlar ile bu mümkün olabilir

actionType "yorum" ya da öyle olacağını ve actionid yayınlanmıştır giriş kimliği olacaktır. Sonra kolayca gerçek yayınlanan açıklamayı görüntülemek için (actionid geçen) Yorum sayfasına actiontypes harita olabilir.